我們正在開發一個使用少量自定義控件的.NET應用程序。在WinForms中設計可取消操作(保存未決更改)
一個特定的控件是一個簡單的「文本編輯器」,類似控件,根據用戶的選擇將一些內容加載到內容中。
如果用戶修改了此控件中的文本,然後進行了不同的選擇以覆蓋該內容,我們希望通常的彈出窗口顯示「您是否想要保存待處理的更改?YES/NO /取消」。
我在考慮應用程序的哪個級別應該是這個負責人:控制本身或使用它的代碼?
我一直在尋找現有的CancelEventArgs類,並考慮使用它,但是我不確定這是否適合這個特定的場景。
示例代碼我在想:
當設置自定義控件的文本,提高「BeforeChanged」事件。這將被處理並允許取消操作。
public void SetText(string text)
{
CancelEventArgs args = new CancelEventArgs();
// Raise the BeforeTextChanged event.
BeforeTextChanged(args);
// If the user cancelled the operation - do not modify text.
// For example, user code will check if needs saving, show the popup, etc.
if (args.Cancel)
{
return;
}
}
如何將數據綁定到控件?你是從UI Form中手動填充它還是在你的控件中有一個內部綁定來處理數據庫調用/更新? – davenewza 2012-07-18 08:32:35
沒有數據綁定。該控件基本上是一個接受用戶文本的大文本框。我還保留一個標誌來監視數據是否「髒」(需要保存)。在導航/替換文本時,我想檢查它是否已保存。 – 2012-07-18 08:35:04