防止TreeView改变SelectedNode,直到ListView被填充
本文关键字:ListView 填充 直到 TreeView 改变 SelectedNode 防止 | 更新日期: 2023-09-27 18:16:26
我有一个TreeView
和ListView
在我的winforms应用程序。问题是当用户从treeview中选择一个节点时,listview将需要一段时间来填充(由于繁重的计算!)。
现在我想防止任何节点被选中,除非listview已经被填充。原因是,如果您一直使用鼠标或通过点击或按住箭头键快速选择节点,则不会填充列表。由于这是为了监视数据使用情况,所以我希望防止这种行为。做这样的事情有什么可用的选择?
你可以使用一个标志来跟踪你的ListView填充状态,并使用TreeView的beforeelect事件。如果你的ListView仍然在被填充,有beforeelect事件处理程序取消事件:
private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
if (_loading)
e.Cancel = true;
}
bool _loading = false;
void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
_loading = true;
// ListView populating
_loading = false;
}