Winform1如何获取Winform2下的所有CheckBox并修改属性?(用于恢复默认设置很好)
form2下重载构造函数,将页面下的所有type为checkbox的控件找到存入数组:
public form2(CheckBox[] obj )
{
InitializeComponent();
foreach(CheckBox ob in this) //this调用默认构造,但foreach报错了.
{
int i=1;
if(( ob as CheckBox)!= null)
{
obj[i] = ob;
i++;
}
}
}
---------------------由于上面报错,用傻办法写:
public Control(CheckBox [] check)
{
InitializeComponent();
this.checkBox1.Checked=check[0].Checked;
this.checkBox2.Checked=check[1].Checked;
......................=check[27].checked;
---------------------
再在form1中new form2出来:
//恢复默认设置。
private CheckBox [] obj= new CheckBox[28];
private void menuItem44_Click(object sender, System.EventArgs e)
{
//把所有勾选值设置为true;
for(int i=0;i<28;i++)
{
obj[i] = new CheckBox();
obj[i].Checked = true;
}
//勾选高级设置中的所有选项。
form2 f2= new form2(obj);
f2.Owner = this;
f2.MdiParent = this;
MessageBox.Show("恢复了默认设置");
}
----------------------------------------------
上面可以只用new一个checkbox传给form2中所有checked;,不知道还有什么好方面没.跳出这个框架.
form2下重载构造函数,将页面下的所有type为checkbox的控件找到存入数组:
public form2(CheckBox[] obj )
{
InitializeComponent();
foreach(CheckBox ob in this) //this调用默认构造,但foreach报错了.
{
int i=1;
if(( ob as CheckBox)!= null)
{
obj[i] = ob;
i++;
}
}
}
---------------------由于上面报错,用傻办法写:
public Control(CheckBox [] check)
{
InitializeComponent();
this.checkBox1.Checked=check[0].Checked;
this.checkBox2.Checked=check[1].Checked;
......................=check[27].checked;
---------------------
再在form1中new form2出来:
//恢复默认设置。
private CheckBox [] obj= new CheckBox[28];
private void menuItem44_Click(object sender, System.EventArgs e)
{
//把所有勾选值设置为true;
for(int i=0;i<28;i++)
{
obj[i] = new CheckBox();
obj[i].Checked = true;
}
//勾选高级设置中的所有选项。
form2 f2= new form2(obj);
f2.Owner = this;
f2.MdiParent = this;
MessageBox.Show("恢复了默认设置");
}
----------------------------------------------
上面可以只用new一个checkbox传给form2中所有checked;,不知道还有什么好方面没.跳出这个框架.
{
InitializeComponent();
// this.checkBox1.Checked=check[0].Checked;
// this.checkBox2.Checked=check[1].Checked;
foreach(Object ob in this.Controls) //this调用默认构造
{
int i=1;
if(( ob as CheckBox)!= null)
{
check[i] = (CheckBox)ob;
i++;
}
}
}
谢谢 近身剪的'.' 确实画龙点睛,每天看console,control,就没想到congtrols集.