当我选中复选框列表中的复选框时,checkbox.text将添加到列表框中。 但是当我取消选中该复选框时,checkbox.text将从列表框中删除。 但问题是我不知道如何从列表框中删除所选项目。
例如,当我选中checkbox1,checkbox2,checkbox3时,列表框将显示
checkbox1
checkbox2
checkbox3
但是,当我取消选中复选框时,仍然相同 我住在这里。帮助!!
这是我的代码:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked) listBox1.Items.Add(checkBox1.Text);
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked) listBox1.Items.Add(checkBox2.Text);
}
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
if (checkBox3.Checked) listBox1.Items.Add(checkBox3.Text);
}
private void checkBox4_CheckedChanged(object sender, EventArgs e)
{
if (checkBox4.Checked) listBox1.Items.Add(checkBox4.Text);
}
答案 0 :(得分:5)
if (checkBox3.Checked)
listBox1.Items.Add(checkBox3.Text);
else
listBox1.Items.Remove(checkBox3.Text);
请注意,这将始终删除Text
属性中的任何内容。这意味着,如果我选中此框,更改textBoxX
中的文字,然后取消选中,则会删除其他项目。
答案 1 :(得分:1)
Items
上的ListBox
集合采用Remove
方法。在您的每个CheckedChanged
事件中添加其他内容并使用Remove
方法。
if (checkBox4.Checked) listBox1.Items.Add(checkBox4.Text);
else listBox1.Items.Remove(checkBox4.Text);
答案 2 :(得分:1)
制作一个通用功能并致电。例如,
private void addRemove(CheckBox chk)
{
if (chk.Checked)
listBox1.Items.Add(chk.Text);
else
listBox1.Items.Remove(chk.Text);
}
致电
addRemove(checkbox1);
答案 3 :(得分:0)
调用Remove()
方法。它接受一个指定要删除的项的参数。
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
listBox1.Items.Add(checkBox1.Text);
else
listBox1.Items.Remove(checkBox1.Text);
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked)
listBox1.Items.Add(checkBox2.Text);
else
listBox1.Items.Remove(checkBox2.Text);
}
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
if (checkBox3.Checked)
listBox1.Items.Add(checkBox3.Text);
else
listBox1.Items.Remove(checkBox3.Text);
}
private void checkBox4_CheckedChanged(object sender, EventArgs e)
{
if (checkBox4.Checked)
listBox1.Items.Add(checkBox4.Text);
else
listBox1.Items.Remove(checkBox4.Text);
}
答案 4 :(得分:0)
如果你想要做的就是为什么不为每个复选框分配相同的事件并执行以下操作: -
CheckBox chkBox=(CheckBox)sender;
if (chkBox.Checked)
listBox1.Items.Add(chkBox.Text);
else
listBox1.Items.Remove(chkBox.Text);
答案 5 :(得分:0)
你可以做一个功能
private void checkBoxCheckedChanged(object sender, EventArgs e)
{
CheckBox cb = sender as CheckBox;
if (cb != null)
if (cb.Checked) listBox1.Items.Add(cb.Text); else listBox1.Items.Remove(cb.Text);
}
然后将所有复选框添加为CheckedChanged事件。