C#WinForms:使复选框看起来像一个单选按钮



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

理想的解决方案是使用复选框。不幸的是,客户端想要不同的外观,例如RadioButton。我可以使用RadioButton,将它们中的每一个放在一个专用组中,如果元素已经被选中,则添加一个事件侦听器以在单击时取消选中。。。就外观问题来说,差不多了!

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

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

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

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

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

相关内容

最新更新