您的位置:首页 > 其它

奇怪的TreeView(WinForms)自动选中问题

2009-11-23 11:26 351 查看
TreeView控件在以下情况下会引发非期待中的AfterSelect事件:

原始状态为未选中任何结点

TreeView内容较多,出现了竖向滚动条

最小化TreeView所在窗体

然后最大化此窗体

步骤4完成后,TreeView会自动选中屏幕上显示的第一个节点,并引发AfterSelect事件。

如果你不想处理此事件,可以检查TreeViewEventArgs.Action, 这种情况下Action的值应该是Unknown。所以微软自己在MSDN Library里对TreeViewEventArgs的示例代码就是这样的:

protected override void OnAfterSelect(TreeViewEventArgs e)
{
// Confirm that the user initiated the selection.
// This prevents the first node from expanding when it is
// automatically selected during the initialization of
// the TreeView control.
if (e.Action != TreeViewAction.Unknown)
{
if (e.Node.IsExpanded)
{
e.Node.Collapse();
}
else
{
e.Node.Expand();
}
}

// Remove the selection. This allows the same node to be
// clicked twice in succession to toggle the expansion state.
SelectedNode = null;
}

只是只口未提刚才我们谈到的这种奇特形为。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: