将RadioButton控件转换为c#中的复选框控件

时间:2012-07-25 10:37:51

标签: c# winforms

我们的链接按钮中有一个menustrip。我添加了一个项目,其中包含子项目,即单选按钮和复选框。如果用户选择表单上的单选按钮,并在menustrip中选择一个复选框项,则它应转换为复选框控件,包括其所有属性,如颜色,背面颜色字体大小,字体样式等。

那么请你帮我在表单的运行时将单选按钮控件转换为复选框控件。

2 个答案:

答案 0 :(得分:2)

RadioButton控件无法转换为Checkbox控件,因为它们不在继承层次结构中。

但是,如果您需要这样做,您可以创建一个Checkbox控件来复制当时常用的属性,并且需要重用,然后切换它们的可见性:

    private CheckBox GetCheckboxFromRadioButton(RadioButton radioButton)
    {
        CheckBox result = new CheckBox();
        //copy text
        result.Text = radioButton.Text;
        //copy colors
        result.BackColor = radioButton.BackColor;
        result.ForeColor = radioButton.ForeColor;
        //copy checked state
        result.Checked = radioButton.Checked;
        //copy parent container
        result.Parent = radioButton.Parent;
        //copy size and location
        result.Bounds = radioButton.Bounds;
        //copy layout behavior
        result.Dock = radioButton.Dock;
        result.Anchor = radioButton.Anchor;
        //enabled property
        result.enabled = radioButton.Enabled;
        // copy other properies you need here
        //...
        return result;
    }

答案 1 :(得分:0)

您可以创建自己的功能

CheckBox ConvertControl(RadioButton rb)

并使用您需要的每个属性初始化来实现Checkbox创建。由于控件不同,因此它们具有一些特定属性,无法自动转换 - 您应该明确它们应该如何明确地进行转换。