簡體   English   中英

在更改顯示的內容之前,如何檢查 winform 上的所有控件以確保它們都沒有被編輯?

[英]How would I check all the controls on a winform to make sure none of them have been edited before changing what's displayed?

技術:C#、.Net、Winforms

我有一個從數據庫中提取數據並填充許多不同控件的主窗體。 標簽、文本框、DataRepeaters、DataGridViews 和選項卡也填充了這些類型的控件。

但是,數據也以這樣一種方式被提取,即在此表單上有多個“記錄”由 BindingNavigator 導航。

由於我的代碼結構,我不能輕易地在任何正在驗證的控件上調用 DataAdaptor.update() (使用它的關聯 DataTable),所以我只使用提交按鈕。

我想知道的是“如何檢查所有控件以查看它們是否已被編輯?”

我正在使用綁定導航器按鈕作為“FindEditedControls()”的觸發器

當前解決方案:

DataTable dt = db.GetTable();
dt.RowChanged += new DataRowChangeEventHandler(dtUpdated);

private void dtUpdated(object sender, DataRowChangeEventArgs e)
{
    needsCommit = true;
}

按鈕只檢查 needsCommit boolean 變量。 如果是真的,那么它會要求用戶在繼續之前提交更改。 如果他們單擊“是”,則它將數據提交到數據庫。

如果這是你得到的,我要感謝你。 這與 DataGridViews 配合得非常好。 現在使用標准表單控件對其進行測試。

連接到DataTable.RowChanged事件。 當它觸發時,您的一個控件已被編輯。

然后,您可以檢查DataRow.RowState屬性以獲取要綁定到的行的DataRowState.Modified值。

從綁定到它的數據中為每個控件分配一個簽名,然后使用控件的值檢查該簽名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM