繁体   English   中英

文本框值在BindingContext Changed事件上未更改

[英]Textbox values not changing on BindingContext Changed event

当前,要更改单击下一步按钮形式在文本字段中显示的记录,我正在使用以下代码以编程方式将下一记录的值分配给相关文本框:

int CurrentRowIndex = this.BindingContext[DS1, "Table1"].Position;
int NextRoecordIndex = CurrentRowIndex + 1;

然后,我在数据集中的文本框中使用NextRecordIndex ot填充值。 我希望在单击“下一步”按钮后执行以下代码,则下一条记录应自动填充。

this.BindingContext[DS1, "Table"].Position -= 1;

您在听BindingContextChanged事件吗? 也许您需要向文本框的BindingContextChanged事件添加事件委托,或在其派生类中重写。

您需要实现事件处理程序。 为此,创建成员函数,每次事件在文本控件中发生时都将调用该成员函数。 要收听此事件,请将您创建的成员函数附加(注册)到文本框的事件委托。 现在,每次文本框触发其BindingContextchanged事件时,都将调用附加到其委托的所有函数。

创建每次事件发生时要调用的函数。

private void AssignNextRecordIndex_OnBindingContextChanged(object sender, EventArgs e) 
{
    // do ur task on bindingcontext changed
}

添加或注册以收听事件:

MyTextBox.BindingContextChanged += AssignNextRecordIndex_OnBindingContextChanged;

而已。

要分离或停止收听此事件(如有必要),请使用:

MyTextBox.BindingContextChanged -= AssignNextRecordIndex_OnBindingContextChanged;

您可以根据需要为事件添加尽可能多的功能。

您还可以在MSDN上找到有关此特殊事件的信息: Control.BindingContextChanged事件

以及.NET 事件(C#编程指南)中有关事件的一些基础知识

如果您创建了自己的自定义TextBox控件,例如:

class MyCustomTextBox : TextBox
{...}

您可以改写继承的OnBindingContextChanged方法(不要忘记调用基本方法):

protected override void OnBindingContextChanged(EventArgs e)
{
    base.OnBindingContextChanged(e);
    // do your stuff
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM