![](/img/trans.png)
[英]uncheck check box with c# wbrbrower control and GetElementsByTagName
[英]c# remove items when uncheck check box
當我選中復選框列表中的復選框時,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);
}
if (checkBox3.Checked)
listBox1.Items.Add(checkBox3.Text);
else
listBox1.Items.Remove(checkBox3.Text);
請注意,這將始終刪除Text
屬性中的所有內容。 這意味着,如果我選中此框,則更改textBoxX
的文本,然后取消選中它會刪除其他項。
ListBox
上的Items
集合具有Remove
方法。 在每個CheckedChanged
事件中放置一個else,然后使用Remove
方法。
if (checkBox4.Checked) listBox1.Items.Add(checkBox4.Text);
else listBox1.Items.Remove(checkBox4.Text);
進行通用功能並調用。 例如
private void addRemove(CheckBox chk)
{
if (chk.Checked)
listBox1.Items.Add(chk.Text);
else
listBox1.Items.Remove(chk.Text);
}
呼叫
addRemove(checkbox1);
調用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);
}
如果這就是您想要做的,那么為什么不將相同的事件分配給每個復選框並執行以下操作:
CheckBox chkBox=(CheckBox)sender;
if (chkBox.Checked)
listBox1.Items.Add(chkBox.Text);
else
listBox1.Items.Remove(chkBox.Text);
你可以做一個功能
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事件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.