在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..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 overr 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 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Windows基本的資料型別 (轉)Windows資料型別
- PHP->GO 基礎-資料型別-boolPHPGo資料型別
- Winform 用string型別的屬性來繫結CheckBox薦ORM型別
- Windows Phone 資料繫結轉換器Windows
- 淺談 Checkbox Group 的雙向資料繫結
- Winform控制元件繫結資料ORM控制元件
- JS中其他資料型別轉為number資料型別的方法JS資料型別
- 【轉載】WPF中TreeView控制元件資料繫結和後臺動態新增資料(一)View控制元件
- C# 左移右移在資料型別轉換中的使用C#資料型別
- WINDOWS資料型別Windows資料型別
- oracle中date資料型別與timestamp資料型別的轉換Oracle資料型別
- Android Studio中Spinner控制元件的資料繫結實現Android控制元件
- JavaScript資料型別轉換總結JavaScript資料型別
- 自主資料型別:在TVM中啟用自定義資料型別探索資料型別
- angularjs中的資料繫結AngularJS
- ABAP中Char型別資料轉換成Decimal型別型別Decimal
- 資料型別,型別轉換資料型別
- 在winform中如何實現雙向資料繫結?ORM
- SQL Server 中易混淆的資料型別(轉)SQLServer資料型別
- MVC 繫結 集合型別 modelMVC型別
- js中其他資料型別的值轉為字串的相關總結JS資料型別字串
- MySQL與oracle的資料型別轉換總結MySqlOracle資料型別
- Java中的基本資料型別與引用資料型別Java資料型別
- 資料型別的轉換資料型別
- ORACLE的資料型別(轉)Oracle資料型別
- number資料型別在查詢中的顯示資料型別
- 不同資料型別在程式中的表現形式資料型別
- 〈%# 〉與〈%= 〉的區別,顯示資料與繫結資料
- 關係型資料庫和非關係型資料庫的區別資料庫
- C# 泛型中的資料型別判定與轉換C#泛型資料型別
- 樹型結構資料在資料庫基本表中的儲存及維護 (轉)資料庫
- 資料結構中抽象資料型別是什麼?資料結構抽象資料型別
- Java中的資料型別Java資料型別
- javascript中的資料型別JavaScript資料型別
- 3. php資料型別、資料型別轉換PHP資料型別
- ORACLE中的隱式資料型別轉換(一)Oracle資料型別
- JS在if中的強制型別轉換JS型別
- Go 的資料型別總結Go資料型別