Csharp/C#教程:如何在C#中检测表单控件的变化?分享


如何在C#中检测表单控件的变化?

有人可以帮助我检测c#中表单控件的变化吗? 我在一个表单上有很多控件,如果表单中的任何控件值发生变化,我需要禁用一个按钮。我正在搜索一些内置的函数/事件处理程序/属性,并且不想创建一个为此定制的function。

请指导我。

不,我不知道任何对表单的任何控制发生变化时都会触发的事件。

我的建议是单独订阅每个事件(如果你的表单有很多控件,这实际上很难做,那么你可能想重新考虑你的UI)。

如果您绝对必须订阅所有控件的更改,那么您可能需要考虑类似于以下内容:

foreach (Control c in this.Controls) { c.TextChanged += new EventHandler(c_ControlChanged); } void c_ControlChanged(object sender, EventArgs e) { } 

请注意,如果您在运行时动态添加和删除窗体的控件,这将无法正常工作。

此外, TextChanged事件可能不适合某些控件类型(例如TextBoxes) – 在这种情况下,您需要转换和测试控件类型,以便能够订阅正确的事件,例如:

 foreach (Control c in this.Controls) { if (c is CheckBox) { ((CheckBox)c).CheckedChanged += c_ControlChanged; } else { c.TextChanged += new EventHandler(c_ControlChanged); } } 

您可以直接将数据绑定到实现INotifyPropertyChanged的模型对象,而不是直接访问控件。

每当用户执行某些操作导致模型中的数据发生更改时,您将收到通知,并可以采取相应的操作。

它可能还会减少在表单控件中输入和输出值所需的代码量。

上述就是C#学习教程:如何在C#中检测表单控件的变化?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1002321.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐