【发布时间】:2011-02-18 16:47:07
【问题描述】:
我创建了一个 Winforms UserControl(Visual Studio 2008,3.5 Framework SP1)。我已经能够创建一些我自己的 Visual Studio 能够正确处理的公共属性(即表单设计器正确响应更改的属性值)。
我想根据UserControl的Enabled属性设置Enabled属性为CheckBox控件。这将在 UserControl1.cs 下:
`chkMyCheckbox.Enabled = Enabled`
我尝试将它放在 UserControl 的 EnabledChanged 事件下并覆盖 OnEnabledChanged 方法,但似乎都没有抓住。这不是工具箱缓存问题(b/c 我可以看到其他代码更改生效)。
提前致谢, -艾伦。
【问题讨论】:
-
没有意义。当用户控件被禁用时,复选框也会被自动禁用。
-
我在想 Alan 想要一个复选框,它的 Checked 状态与另一个控件的 Enabled 状态相关联。再次重读这个问题,Hans Passant 对这个问题的评论似乎是正确的:如果复选框在 UserControl 上被禁用,则该复选框也应该已经被包含有效地禁用。我认为复选框上的 Enabled 属性可能仍然显示为 true,但是当 userControl.Enabled = false 时,整个 UserControl 都会被禁用。
-
澄清一下:你知道texbox在禁用时会变灰吗?如果它只是包含在用户控件中,它就不会这样做。如何将文本框的启用属性绑定到其父控件的启用属性?我希望它看起来像被禁用(我意识到它已经被禁用了)
-
还是一头雾水。这是设计者问题还是运行时问题?在运行时,当父 UserControl 被禁用时,UserControl 上的所有控件在功能上和视觉上都被禁用。在设计时,无论容器如何,控件都不会以图形方式禁用。
-
设计时。在运行时工作。
标签: c# .net winforms user-controls