我们正在开发一个使用一些自定义控件的 .NET 应用程序。
一个特定的控件是一个简单的“文本编辑器”,如控件,根据用户的选择将一些内容加载到其中。
如果用户修改此控件中的文本,然后做出不同的选择来覆盖该内容,我们希望通常的弹出窗口显示“您要保存挂起的更改吗?是/否/取消”。
我正在考虑应用程序的哪个级别应该对此负责:控件本身还是使用它的代码?
我一直在研究现有的 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;
}
}