C# winform自定义控件属性

qq_34063605 2016-02-24 10:47:38
现有自定义控件,内有一textbox控件 TextBox1。控件有一属性 Value
定义为
[BrowsableAttribute(true)]
[BindableAttribute(true)]
public string Value
{
get{return TextBox1.Text;}
set{TextBox1.Text =value;}
}
将该控件的实例绑定到窗体的bindingSource1上
this.userControl11.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.bindingSource1, "SubTitle", true));
当使用bindingSource1.Position发生改变时跟踪发现会触发Value的Get事件并且
并会触发bindingSource1的BindingComplete事件。跟踪发现e.BindingCompleteContext 此时的值为DataSourceUpdate。也就是说数据集认为业务对象的内容在发生变化。
但如果绑定的是一个普通控件,则不会触发该事件。
跟踪了 当bindingSource.Current发生变更时,自定义属性和控件的普通控件属性的区别:
自定义的属性:会触发2次BindingComplete事件 一次是BindingCompleteContext.ControlUpdate 控件把值更新到变更前的bindingSource行
第二次是BindingCompleteContext.DataSourceUpdate,bindingSource的新行把数据给控件
普通控件属性:只触发后面一次
...全文
218 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34063605 2016-02-24
  • 打赏
  • 举报
回复
大神帮帮忙! 搞一天了。
qq_34063605 2016-02-24
  • 打赏
  • 举报
回复
没有大神帮忙解答一下么?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧