我们的链接按钮中有一个menustrip。我添加了一个项目,其中包含子项目,即单选按钮和复选框。如果用户选择表单上的单选按钮,并在menustrip中选择一个复选框项,则它应转换为复选框控件,包括其所有属性,如颜色,背面颜色字体大小,字体样式等。
那么请你帮我在表单的运行时将单选按钮控件转换为复选框控件。
答案 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创建。由于控件不同,因此它们具有一些特定属性,无法自动转换 - 您应该明确它们应该如何明确地进行转换。