在windows form 中绑定非bool类型数据checkbox控件的示例分析-亚博电竞手机版
在windows form 中绑定非bool类型数据checkbox控件的示例分析
今天就跟大家聊聊有关在windows form 中绑定非bool类型数据checkbox控件的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
checkbox的checked属性不能直接绑定非bool型的数据,因此作了下面这个扩展。
使用的时候,需要先设置两个属性
checkedvalue----选中时代表的值
uncheckedvalue----未选中时代表的值
例如
checkedvalue= “男”
uncheckedvalue= “女”
然后绑定数据到bindtext属性
例如:
enjoycheckbox1.databindings.add("bindtext",ds,"cname");
源码:
using system;
using system.collections;
using system.componentmodel;
using system.drawing;
using system.data;
using system.windows.forms;
namespace enjoy.interface.control
{
///
/// enjoycheckbox 的摘要说明。
///
public class enjoycheckbox : system.windows.forms.checkbox
{
///
/// 必需的设计器变量。
///
private system.componentmodel.container components = null;
public enjoycheckbox()
{
// 该调用是 windows.forms 窗体设计器所必需的。
initializecomponent();
// todo: 在 initializecomponent 调用后添加任何初始化
}
///
/// 清理所有正在使用的资源。
///
protected override void dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.dispose();
}
}
base.dispose( disposing );
}
#region 组件设计器生成的代码
///
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
///
private void initializecomponent()
{
components = new system.componentmodel.container();
}
#endregion
private object m_bindtext;
private object m_checkedvalue;
private object m_uncheckedvalue;
///
/// 绑定数据库的属性
///
public object bindtext
{
get
{
return m_bindtext;
}
set
{
m_bindtext = value;
if ((m_bindtext!=null)&&(checkedvalue!=null)&&(uncheckedvalue!=null))
{
if (m_bindtext.equals(checkedvalue))
{
if (!this.checked)
{
this.checked = true;
}
}
if (m_bindtext.equals(uncheckedvalue))
{
if (this.checked)
{
this.checked = false;
}
}
}
}
}
///
/// 选中时代表的(数据库中的)值
///
public object checkedvalue
{
get
{
return m_checkedvalue;
}
set
{
m_checkedvalue = value;
}
}
///
/// 未选中时代表的(数据库中的)值
///
public object uncheckedvalue
{
get
{
return m_uncheckedvalue;
}
set
{
m_uncheckedvalue = value;
}
}
protected override void oncheckedchanged(eventargs e)
{
base.oncheckedchanged(e);
if (this.checked)
{
bindtext = checkedvalue;
}
if (!this.checked)
{
bindtext = uncheckedvalue;
}
}
}
}
看完上述内容,你们对在windows form 中绑定非bool类型数据checkbox控件的示例分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。