在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控件的示例分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。

展开全文
内容来源于互联网和用户投稿,文章中一旦含有亚博电竞手机版的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系亚博电竞手机版删除

最新文章

网站地图