C# 防止控件在未启用时更改其文本属性

C# 防止控件在未启用时更改其文本属性,c#,winforms,controls,C#,Winforms,Controls,我的应用程序中有一些DomainUpDown控件。行为设置如下: 正常:每个控件可以单独向上/向下(更改所选项目) 特别:如果选中复选框,向上/向下移动第一个控件将导致其他控件也发生更改 现在有些情况下,我希望通过设置disabled=true来禁用某些控件。我这样做了,但在本例中,更改第一个控件的选定项将导致其他禁用的控件也更改选定项 有没有办法完全禁用控件,使其不接受类似于control.Text=“bla-bla”的内容 附言:我不需要隐藏控制 恐怕没有。至少没有额外的工作 单向: 您

我的应用程序中有一些
DomainUpDown
控件。行为设置如下:

  • 正常:每个控件可以单独向上/向下(更改所选项目)
  • 特别:如果选中复选框,向上/向下移动第一个控件将导致其他控件也发生更改
现在有些情况下,我希望通过设置
disabled=true
来禁用某些控件。我这样做了,但在本例中,更改第一个控件的选定项将导致其他禁用的控件也更改选定项

有没有办法完全禁用控件,使其不接受类似于
control.Text=“bla-bla”
的内容


附言:我不需要隐藏控制

恐怕没有。至少没有额外的工作

单向:

您可以保存Textbox.Text值的列表,这些值将保存所有Textbox的条目

OnTextChanged

  • 如果您的文本框已启用,请更新其
    文本
    属性并将其存储在列表中

  • 如果文本框已禁用,请将其文本属性设置为列表中的最后一个值


您可以使用
字典
或任何包含
键值对
对象的类似工具。

这不是答案。我不会-1你,但你需要详细说明。。。“额外工作”是什么?@Shai您可以派生您自己的文本框(或您正在使用的组件)当修改
文本时,请检查
禁用的
属性,或者使用
文本更改的事件直接使用标准文本处理它。如果更新文本框值,为什么不简单地检查文本框上的Enabled属性,只在文本设置为true时更改文本?我保留了这一选项作为最后一个选项。因为控件的数量很多,需要进行大量的编辑。我希望有一种方法可以完全禁用控件,我想知道为什么
Disabled
不能真正禁用控件!禁用只会阻止用户与控件交互或引发事件。MSDN:使用Enabled属性,您可以在运行时启用或禁用控件。例如,可以禁用不应用于应用程序当前状态的控件。还可以禁用控件以限制其使用。例如,可以禁用按钮以防止用户单击它。如果控件被禁用,则无法选择它。