winform控件请教
private void Com(Control.ControlCollection c)
{
richTextBox1.Clear();
if (c.Count > 0)
{
foreach (Control c1 in c)
{
if (c1.GetType().ToString().Equals("System.Windows.Forms.CheckBox"))
{
if(((CheckBox)c1).Checked== true)
{
// richTextBox1.AppendText();
//
}
}
if (c1 != null)
{
Com(c1.Controls);
}
else
{
return;
}
}
}
else
{
return;
}
}
[解决办法]
有一种方法就是,在name勾选时,触犯一个事件用来更改name1和name2的勾选状态,以下是代码
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
try
{
if (this.name.Checked)
{
this.name1.Checked = true;
this.name2.Checked = true;
}
}
catch (Exception es)
{
MessageBox.Show(es.Message);
}
}
这就可以了
[解决办法]
写个简单小例子
private void button2_Click(object sender, EventArgs e)
{
for (int i = Convert.ToInt32('a'); i <= Convert.ToInt32('z'); i++)
{
test(this, Convert.ToChar(i).ToString(), Convert.ToChar(i) + "1", Convert.ToChar(i) + "2");
}
}
void test(Form frm, string chk, string txt1, string txt2)
{
Control c = frm.Controls.Find(chk, true)[0];
(c as CheckBox).CheckedChanged += new EventHandler(
(sender1, e1) =>
{
(frm.Controls.Find(txt1, true)[0] as TextBox).Text = "啦啦啦";
(frm.Controls.Find(txt2, true)[0] as TextBox).Text = "德玛西亚";
}
);
}
[解决办法]
你把第一组的名称定义成一个枚举或数组
定义一控件参数
循环调出
{
for(1...N)
用this.FINDCO..后面忘了 按名字找到这个控件
然后赋值(取数也一样)
}