.net - WinForms - 防止更改组合框 - DropDownList 模式

标签 .net winforms events combobox event-handling

在 Winforms 中,阻止用户更改 DropDown 值的正确方法是什么? 我想提示用户说有未保存的更改。如果用户决定不放弃这些更改,我想取消组合框更改。关于如何做到这一点有什么想法吗?

我虽然之前见过 e.Cancel 选项。但也许不在 System.Windows.Forms.ComboBox 上。

更新: 进一步解释一下,组合框不是数据输入表单的一部分。它的使用就像导航/过滤器一样。用户已对网格进行更改。我想阻止他们在没有提示的情况下离开网格。

最佳答案

我不确定我是否完全理解您的问题,但您的问题似乎与 ComboBox 并不真正直接相关,而是关于当用户选择不保存表单时如何将表单重置为其原始值他们刚刚做出的更改。

据推测,您的表单中有一个方法可以从某种数据结构(可能是 ORM 对象或 DataRow)中的值加载控件。将表单重置为其原始(预先编辑的)值的最简单方法是使用原始(未更改的)数据结构再次调用该方法。

更新:嗯,一个简单的方法是在表单上更改任何内容后立即将 ComboBox 的 Enabled 属性设置为 false,然后进行设置一旦他们保存或取消更改,就会再次变为 true

关于.net - WinForms - 防止更改组合框 - DropDownList 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1468469/

相关文章:

javascript - 从非 DOM 对象内部调度和处理自定义事件

c# - .NET 的 64 位系统上的原子读/写大小?

c# - 是否有当前等效于停产的 "SQL Server English Query"

asp.net - 多个 UI 的接口(interface) Controller (ViewModel)

c# - 禁用 DataGridView 中的自动添加行

.net - 什么是 IDataErrorInfo 以及它如何与 WPF 一起使用?

c# - C# 设置中的接口(interface)

c# - .ContextMenu 和 .ContextMenuStrip 的区别

C#-位图到字节数组

c# - 如何捕捉扩展器标题点击事件