【发布时间】:2012-09-18 00:49:05
【问题描述】:
我有窗口应用程序,并且有一个弹出对话框(窗体),其中包含一些输入控件(TextBox、ComboBox)和其他控件,如 PictureBox、Label。我的表单有两种模式 1)添加或编辑模式 2)查看模式。在查看模式下,用户只能查看详细信息,也可以复制输入值(例如,用户可以复制TextBox 值)。
如果表单模式是查看,那么我想将表单的所有输入控件的只读属性设置为 true,并使用我的 Forma 的逐个迭代控件(使用 for each)。但我不知道如何知道特定控件是输入类型控件。 System.Windows.Forms.Control 没有 ReadOnly 属性。我发现我可以为我的解决方案使用 Enable 属性,但问题是如果 Enable 设置为 false,用户无法从 TextBox 复制文本值。
任何人都可以帮助我如何知道特定控件是输入类型控件。
谢谢。
【问题讨论】:
-
你说的输入类型Control是什么意思?复选框是输入类型控件吗?无论如何,我只看到“肮脏”的解决方案:a)保留您认为作为 输入控件的类型的数组 b)检查控件是否具有``
Value属性。 -
Forms.Control 没有 ReadOnly 属性,这是更高级别的 TextBoxBase 类的属性
-
是的。 CheckBox 是一个输入型控件。我也在考虑使用输入控件类型的数组。但正在寻找更好的解决方案。我可以想到你的第二个解决方案。让我检查一下。