我是靠谱客的博主 真实翅膀,最近开发中收集的这篇文章主要介绍在Windows Form 中可以绑定非bool类型数据的CheckBox控件 (转),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在Windows Form 中可以绑定非bool类型数据的CheckBox控件 (转)[@more@]


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控件 (转)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部