继承TextBox的一自定义控件,加入如下属性:private object value;[Bindable(true)]
public object Value
{
get { return this.value; }
set { this.value = value;}
}然后通过control.DataBindings.Add("Value", dataSource, columnName, true);绑定数据。
其中dataSource为BindingSource数据源。正常来讲,只有在控件上改变值,才会触发dataSource绑定数据表的ColumnChanged事件。
可现在是当dataSource移动浏览数据时,也会触发ColumnChanged事件。并且当光标进入控件时然后又离开,此时也会触发ColumnChanged事件。不知是怎么回事,请高手相助。
public object Value
{
get { return this.value; }
set { this.value = value;}
}然后通过control.DataBindings.Add("Value", dataSource, columnName, true);绑定数据。
其中dataSource为BindingSource数据源。正常来讲,只有在控件上改变值,才会触发dataSource绑定数据表的ColumnChanged事件。
可现在是当dataSource移动浏览数据时,也会触发ColumnChanged事件。并且当光标进入控件时然后又离开,此时也会触发ColumnChanged事件。不知是怎么回事,请高手相助。
public object Value
{
get { return this.value; }
set {
if (this.value != value)
{
this.value = value;
OnValueChanged(this, EventArgs.Empty);
}
}
} public event EventHandler ValueChanged;// 属性名Changed 是数据绑定中的一个范式
// 绑定引擎自动会订阅protected virtual void OnValueChanged(object sender, EventArgs e)
{
if (ValueChanged != null)
ValueChanged(sender, e);
}