【问题标题】:How to add design-time support for Enabled property in Winforms如何在 Winforms 中添加对 Enabled 属性的设计时支持
【发布时间】: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


【解决方案1】:

在设计时呈现控件的方式取决于该控件的设计者。在设计器中时,核心 Win32 控件不会将自身呈现为已禁用。

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 2011-04-11
    相关资源
    最近更新 更多