我正在使用Windows Forms TreeView
控件。TreeView多次触发BeforeSelect事件
我有它挂接的方式是为随后(简化):
TreeView treeView = new TreeView();
treeView.BeforeSelect += beforeSelect;
private void beforeSelect(sender, args)
{
MessageBox.Show("Some msg");
// more code
}
在某些情况下,呼叫到MessageBox.Show触发BeforeSelect事件的另一个饲养,这触发另一个,另一个,...
似乎这个事件是在树视图中的每个项目提高(我已经计算了它被提出的次数)。
我在互联网上搜索了更多关于这种情况的原因。
我发现的一件事是TreeView会在获得焦点时自动选择第一个节点。 但是,这并不能解释为什么事件是作为树中treenode项目的数量触发的。
任何帮助将不胜感激。我正在考虑为此提出一个Microsoft Connect错误,因为它看起来像一个非常奇怪的行为,与我认为控件应该如何工作不一致。
我做了类似的事情(在进入方法时从事件处理程序中解开,稍后重新添加)。 –