概述
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;
}
}
}
}
初次发表,有什么问题或者建议请回复。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-962644/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10752019/viewspace-962644/
最后
以上就是真实翅膀为你收集整理的在Windows Form 中可以绑定非bool类型数据的CheckBox控件 (转)的全部内容,希望文章能够帮你解决在Windows Form 中可以绑定非bool类型数据的CheckBox控件 (转)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复