当我在CheckedListBox中检查不是第一项时,我在Application.Run(new Form1())
有一个例外。这是我的代码示例
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private List<bool> l = new List<bool>() { true, false, true, true, true};
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
checkedListBox1.Items.Add(i);
}
}
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
for (int i = 0; i < 5; i++)
{
if (l[i] == true)
{
checkedListBox1.Items.Remove(i);
}
}
}
}
有谁知道如何解决它? 提前谢谢。
答案 0 :(得分:0)
问题在于您正在检查项目,触发与其关联的事件(checkedListBox1_ItemCheck
),并且在事件执行时您将其从checkedListBox1
中删除。因此,事件不再附加到项目,并且表单会抛出异常。
您可以通过切换应该表现正常的第一个复选框来确认。
您需要重新考虑您希望如何运作。我不知道你为什么这样设计它,但可能有更好的方法。为什么要在支票切换中从checkedListBox1
删除项目?您可以使用独立按钮来完成此任务。