ListBox DoubleClick Event两次触发Event-Handler方法

时间:2011-03-02 18:11:51

标签: event-handling listbox double-click

当选择某个项目时,ListBox是否正常触发DoubleClick事件处理程序方法两次?有好几天我试图找出导致这种情况的原因并且似乎无法隔离任何导致Listbox两次触发事件处理程序方法的问题并开始相信这可能只是正常响应。有没有人对此问题有任何经验或提供任何见解?

...
listBox1.Items.Clear();
listBox1.DoubleClick += filteredAlbum_DoubleClick;       
foreach (XmlNode node in replyNode.ChildNodes)
{
    listBox1.Items.Add(node.ChildNodes[0].Value); }
}
listBox1.SelectedIndex = 0;
...

private void filteredAlbum_DoubleClick(object sender, EventArgs e)
{
    var selectedItem = listBox1.SelectedItem.ToString();
    MessageBox.Show(ActiveFilter + " = " + selectedItem);
}

谢谢, 比尔

1 个答案:

答案 0 :(得分:2)

我猜你要两次添加你的listBox1.DoubleClick处理程序。

每个事件处理程序将被调用一次,即使这实际上是多次添加相同的处理程序。清除列表框不会清除以前绑定的处理程序。