我有列表框并获得所选项目。代码是
private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
int index = listBox1.SelectedIndex;
string str ="";
if (index == 0)
{
str = (string)Text1.Text;
}
else if (index == 1)
{
str = (string)Text2.Text;
}
else if (index == 2)
{
str = (string)Text3.Text;
}
MessageBox.Show(str);
// listBox1.SelectedIndex = -1;
}
通过以上代码,在我选择了一个项目之后,蓝色条显示在所选项目中,以避免我给出了listBox1.SelectedIndex = -1;
。
如果我给这个函数执行两次。消息框显示空字符串。
为什么会这样?我怎么能避免这种情况?
答案 0 :(得分:0)
尝试这样的构造:
listBox1.SelectionChanged -= listBox1_SelectionChanged;
listBox1.SelectedIndex = -1;
listBox1.SelectionChanged += listBox1_SelectionChanged;
listBox1.SelectedIndex正在调用SelectionChanged事件,因此调用此函数两次。