设置DataTable中火灾的值SelectedIndexChanged事件
问题描述:
我有一个绑定到一个名为DataTable
一个Notes
listbox1
,关于这一点我在数据表中的单元格设置值线变化listBox1.SelectedIndex = -1
然后重新设定listBox1.SelectedIndex
原值和完成。因此,该行将两次调用listBox1_SelectedIndexChanged
事件。设置DataTable中火灾的值SelectedIndexChanged事件
相反,它甚至不应该调用该事件。如何解决这个问题呢?
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex != -1)
{
dataSet11.Notes.Rows[listBox1.SelectedIndex]["Text"] = richTextBox1.Text;
//this line fires listBox1_SelectedIndexChanged event
//with listBox1.SelectedIndex = -1
//then it changes listBox1.SelectedIndex back to original value before complete execution, and calls the even again
}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
答
您可以使用触发器布尔领域是:
private TextBox_OntextChanged(object sender, EventArgs args)
{
this.supressEvents = true;
//Do your stuff here
this.supressEvents = false;
}
private void ListBox_OnSelectionChanged(object sender, EventArgs args)
{
if (this.supressEvents)
{
return;
}
//Do your stuff here
}
答
暂时移除的SelectedIndexChanged处理程序
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
listBox1.SelectedIndexChanged -= listBox1_SelectedIndexChanged;
if (listBox1.SelectedIndex != -1)
{
dataSet11.Notes.Rows[listBox1.SelectedIndex]["Text"] = richTextBox1.Text;
//this line fires listBox1_SelectedIndexChanged event
//with listBox1.SelectedIndex = -1
//then it changes listBox1.SelectedIndex back to original value before complete execution, and calls the even again
}
listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged;
}
为什么它没有来到我的头...谢谢 – SMUsamaShah