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属性,您可以在运行时启用或禁用控件。例如,可以禁用不应用于应用程序当前状态的控件。还可以禁用控件以限制其使用。例如,可以禁用按钮以防止用户单击它。如果控件被禁用,则无法选择它。