0

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

那么,您能否帮助我在表单运行时将单选按钮控件转换为复选框控件。

4

3 回答 3

3

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;
    }
于 2012-07-25T10:53:22.030 回答
0

您可以创建自己的功能

CheckBox ConvertControl(RadioButton rb)

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

于 2012-07-25T10:57:04.207 回答
0

您可以使用此代码

    private void RadioButton1_Click(object sender, EventArgs e)
    {
        RadioButton1.Checked = !(bool)RadioButton1.Tag ;
    }

    private void RadioButton1_MouseDown(object sender, MouseEventArgs e)
    {
        RadioButton1.Tag = RadioButton1.Checked;
    }
于 2022-01-18T00:58:29.800 回答