Bentley ORD(openroads designer) 二次开发(BIM)第五节 控件封装
主题:C# WinForm 自定义控件封装
前言
赵钱孙李
周吴郑王
冯陈楚魏
切糕沾白糖
咱们书接上文,
在WinForm窗体开发中,默认的控件大都是 string、bool这种基础类型,但实际项目中,数据往往包括各种对象,将这些对象型的数据绑定至控件时,就不是很方便,难以实现数据绑定与联动。想完成如上的需求,我们就可以尝试自定义控件封装。
使用场景设定:依据惯例,我们先设定一个使用场景,需要这样一个下拉选框,下拉选项显示用户易读的中文词条,例如“小王”,点击词条后,后台获取“小王”对应的ID,例如“user001”,并满足数据绑定效果,即后台数据与前端显示实时联动。
一、新建自定义控件类
首先新建一个类,testCom;
新建后,继承 System.Windows.Forms.ComboBox;
using System.Windows.Forms;
namespace WindowsFormsApplication1.组件封装
{
class testCom : ComboBox
{
public testCom()
{
value = ""; //定义属性值value用于绑定数据
}
private string _value;
public string value
{
get {
return _value; }
set {
_value = value; if (!string.IsNullOrEmpty(this.ValueMember)) {
this.SelectedValue = _value; } }
//赋值逻辑,当ValueMember不为空时,SelectedValue等于_value
}
//重写方法 OnSelectedValueChanged
protected override void OnSelectedValueChanged(EventArgs e)
{
base.OnSelectedValueChanged(e);
value = this.SelectedV