C#WinForms:使CheckBox看起来像RadioButton

Gri*_*lov 3 .net c# checkbox user-interface winforms

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

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

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

注意:控件是在运行时从类MyClass:CheckBox实例化的.

Han*_*ant 5

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

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

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