目前,要点击下一个按钮更改表单中文本字段中显示的记录,我将使用以下代码以编程方式将下一条记录的值分配给相关文本框:
int CurrentRowIndex = this.BindingContext[DS1, "Table1"].Position;
int NextRoecordIndex = CurrentRowIndex + 1;
然后我在DataSet的文本框中使用NextRecordIndex或填充值。我想要的是,只要单击下一个按钮执行以下代码,下一条记录就会自动填充。
this.BindingContext[DS1, "Table"].Position -= 1;
答案 0 :(得分:0)
您是否在收听BindingContextChanged事件?也许您需要将一个事件委托添加到文本框的BindingContextChanged事件中,或者覆盖它的派生类..
答案 1 :(得分:0)
您需要实现事件处理程序。为此,请创建成员函数,每次在文本控件中发生事件时都应调用该函数。要收听此事件,请将创建的成员函数附加(注册)到文本框的事件委托。现在每次文本框触发其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 Event
还有一些关于.NET事件的基础知识 Events (C# Programming Guide)
如果你创建了自己的自定义TextBox控件,如:
class MyCustomTextBox : TextBox
{...}
您可以改写继承的OnBindingContextChanged方法(不要忘记调用基本方法):
protected override void OnBindingContextChanged(EventArgs e)
{
base.OnBindingContextChanged(e);
// do your stuff
}