簡體   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