listBox的SelectedIndexChanged事件引发有关问题
listBox的SelectedIndexChanged事件引发问题
1、不理解button2_Click怎么会触发listBox1_SelectedIndexChanged事件,msdn不是说: SelectedIndex 属性或 SelectedIndices 集合更改后才会引发吗?虽然增加if(listBox1.SelectedIndex != -1)能解决,但原因何在????
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(listBox1.SelectedIndex!=-1)
{
//
}
}
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items[listBox1.SelectedIndex] ="abc";
}
------解决方案--------------------
listBox1.Items[listBox1.SelectedIndex] ="abc";这个操作的顺序是将选中的Item删掉,在添加。你可以写点代码看看是不是这样的效果。
------解决方案--------------------
跟楼主一样,以前也碰到过这个问题,确实会激发SelectedIndexChanged事件,在事件里必须判断 !=-1,正如楼上所说,先删除再添加的
所以必须在事件里加上SelectedIndex!=-1来进行判断
------解决方案--------------------
listBox1.SelectedIndex != -1为不选中情况下,你没有点listbox1时,listBox1.SelectedIndex值为-1,否则返回错误
1、不理解button2_Click怎么会触发listBox1_SelectedIndexChanged事件,msdn不是说: SelectedIndex 属性或 SelectedIndices 集合更改后才会引发吗?虽然增加if(listBox1.SelectedIndex != -1)能解决,但原因何在????
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(listBox1.SelectedIndex!=-1)
{
//
}
}
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items[listBox1.SelectedIndex] ="abc";
}
------解决方案--------------------
listBox1.Items[listBox1.SelectedIndex] ="abc";这个操作的顺序是将选中的Item删掉,在添加。你可以写点代码看看是不是这样的效果。
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items[listBox1.SelectedIndex] = "newText";
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("code outside");
if (listBox1.SelectedIndex != -1)
{
MessageBox.Show("code in !=-1");
}
}
------解决方案--------------------
跟楼主一样,以前也碰到过这个问题,确实会激发SelectedIndexChanged事件,在事件里必须判断 !=-1,正如楼上所说,先删除再添加的
所以必须在事件里加上SelectedIndex!=-1来进行判断
------解决方案--------------------
listBox1.SelectedIndex != -1为不选中情况下,你没有点listbox1时,listBox1.SelectedIndex值为-1,否则返回错误