【问题标题】:C# WinForms: Make CheckBox look like a RadioButtonC# WinForms:使 CheckBox 看起来像 RadioButton
【发布时间】:2013-12-09 04:46:19
【问题描述】:

实际上,在一个 WinForms 项目(VS 2010、C#、.NET 4.5)中,我在表单中构建了一个矩阵 (10x10)。每个元素都由一个可以“选中”或“未选中”的控件表示。每个元素的状态完全独立于另一个。

理想的解决方案是使用 CheckBox。不幸的是,客户端想要不同的外观——例如,RadioButton 的外观。我可以使用 RadioButton,将它们中的每一个放在一个专门的组中,添加一个事件侦听器以取消选中单击时元素已被选中...几乎是外观问题!

我不能重写 CheckBox 类的一些渲染方法吗? (无论如何,这是整个应用程序中我使用此控件的唯一地方)

注意:控件在运行时从 MyClass:CheckBox 类中实例化。

【问题讨论】:

标签: c# .net winforms user-interface checkbox


【解决方案1】:

如果您需要让它看起来像一个,请使用 RadioButton。您需要将它们的 AutoCheck 属性设置为 False 以使它们像复选框一样工作并为它们提供一个通用事件处理程序:

    private void radioButtons_Click(object sender, EventArgs e) {
        var button = (RadioButton)sender;
        button.Checked = !button.Checked;
    }

毫不犹豫地指出这是非常糟糕的 UI 设计。

【讨论】:

  • 感谢您的提示。当然,最合适的解决方案是社交,应该是让我的客户相信每个控件都有自己的功能:) 但是你的答案也很有效。谢谢
猜你喜欢
  • 2011-04-27
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 2012-04-12
  • 1970-01-01
  • 2016-11-11
相关资源
最近更新 更多