多个复选框的 CheckedChanged 方法
CheckedChange method to a mutiple amount of checkboxes
是否可以访问 CheckedChanged 事件来处理所有复选框,当它们被更改时?
private void AddTask(int member, String bound)
// ...
for (int i = 1; i <= bound; i++) {
CheckBox checkBox = new CheckBox();
checkBox.Name = String.Format("c_Mem{0}_A{1}", member, i);
checkBox.Text = "";
checkBox.Width = 20;
checkBox.Height = 15;
checkBox.Location = new Point(boundX_ChkBox, boundY_ChkBox);
boundX_ChkBox += 26;
//...
}
}
我测试了以下,这对我不起作用。 (我只是试图检查一个复选框,实际上应该在后面的一个循环中)
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
if ((CheckBox)this.Controls["c_Mem1_A1"]).Checked)
{
MessageBox.Show("Test");
}
}
在创建复选框的循环中,您可以为所有复选框分配一个事件处理程序。这是如何完成的:
checkBox.CheckedChanged += checkBox_CheckedChanged;
如果这是一个 windows 表单应用程序,您可以为 Tag
属性 分配一个唯一编号。这可以用来跟踪复选框。或者,您也可以在名称上使用 switch
。您的处理程序将如下所示:
void checkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox currentCheckBox = (CheckBox)sender;
switch ((int)currentCheckBox.Tag)
{
case 1:
// do something
break;
case 2:
// do something else
break;
default:
break;
}
}
您只需将事件的 sender
参数转换为 CheckBox
:
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox cb = (CheckBox) sender;
if (cb.Checked)
{
MessageBox.Show("Test");
}
}
但您首先需要添加相同的事件处理程序:
CheckBox checkBox = new CheckBox();
// ...
checkBox.CheckedChanged += checkBox_CheckedChanged;
是否可以访问 CheckedChanged 事件来处理所有复选框,当它们被更改时?
private void AddTask(int member, String bound)
// ...
for (int i = 1; i <= bound; i++) {
CheckBox checkBox = new CheckBox();
checkBox.Name = String.Format("c_Mem{0}_A{1}", member, i);
checkBox.Text = "";
checkBox.Width = 20;
checkBox.Height = 15;
checkBox.Location = new Point(boundX_ChkBox, boundY_ChkBox);
boundX_ChkBox += 26;
//...
}
}
我测试了以下,这对我不起作用。 (我只是试图检查一个复选框,实际上应该在后面的一个循环中)
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
if ((CheckBox)this.Controls["c_Mem1_A1"]).Checked)
{
MessageBox.Show("Test");
}
}
在创建复选框的循环中,您可以为所有复选框分配一个事件处理程序。这是如何完成的:
checkBox.CheckedChanged += checkBox_CheckedChanged;
如果这是一个 windows 表单应用程序,您可以为 Tag
属性 分配一个唯一编号。这可以用来跟踪复选框。或者,您也可以在名称上使用 switch
。您的处理程序将如下所示:
void checkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox currentCheckBox = (CheckBox)sender;
switch ((int)currentCheckBox.Tag)
{
case 1:
// do something
break;
case 2:
// do something else
break;
default:
break;
}
}
您只需将事件的 sender
参数转换为 CheckBox
:
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox cb = (CheckBox) sender;
if (cb.Checked)
{
MessageBox.Show("Test");
}
}
但您首先需要添加相同的事件处理程序:
CheckBox checkBox = new CheckBox();
// ...
checkBox.CheckedChanged += checkBox_CheckedChanged;