C#WinForms:使CheckBox看起来像RadioButton

时间:2013-11-24 15:47:05

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

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

理想的解决方案是使用CheckBox。不幸的是,客户想要一个不同的外观 - 例如,RadioButton之一。我可以使用RadioButton,将它们中的每一个放在一个专用的组中,添加一个事件监听器,如果元素已被检查,则取消选中点击...几乎就外观问题而言!

我无法覆盖CheckBox类的一些渲染方法吗? (无论如何,这是我使用此控件的整个应用程序中唯一的位置)

注意:控件是在运行时从类MyClass:CheckBox实现的。

1 个答案:

答案 0 :(得分:5)

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

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

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