2012-07-03 106 views
3

我搜索了一下Google,但找不到有用的东西。 TreeView的行为就像当你将一个节点添加到树中一样,默认情况下它会被选中,这意味着你应该有一个选定的节点,除了Tree是空的时候。如何禁用TreeView自动第一个节点选择

有什么方法可以覆盖或禁用它?

+0

你可以保留以前选择的节点中的对象,然后添加节点,那么选择的节点设置为保存节点。 –

+0

这是一个处理根的好方法,但是如果选定的节点将在任何父节点下,那么我必须记住父节点,然后将保留的节点添加回到正确的父节点。有没有其他方法? – MahanGM

+0

我认为你可以通过它的KEY保留选定的节点,那么你不需要记住父节点,即使你确定你需要父节点,你可以用foreach循环找到它并找出你保存的节点是谁父亲是。 –

回答

0
TreeView tv1 = new TreeView(); 
TreeNode selected = tv1.SelectedNode; 
//do your add here 
tv1.SelectedNode = selected; 
+0

这不会禁用节点选择。此外,我使用的是可视化TreeView,而不是基于代码的。现在,这就像我得到选定的节点,然后把它放回选择,所以有什么区别,而TreeView仍然不能使节点不被选中? – MahanGM

0

哦,我刚刚得到你,你想没有选定的节点,对不对?
就是这么简单:

treeView1.SelectedNode = null; 
+0

这不会做到这一点:)。我曾尝试过。 – MahanGM

+0

但它适用于我,我在测试它之前回答 –

+0

当我将selectedNode设置为null我没有选定的节点,这很奇怪,你可以上传你的代码? –

1

您可以使用此代码

yourNode.SelectAction=TreeNodeSelectAction.None 

尝试;

+0

这似乎是工作。我从未见过'SelectAction'。我会试试看。谢谢。 – MahanGM

+0

我很乐意为您效劳MahanGM –

+0

在Windows窗体TreeView TreeNode中没有'SelectAction属性。 – BillW

3

使用更高的tabindex值 - 即,一旦您的表单加载第一个tabstop不应该是您的TreeView控件。

TreeView1.TabIndex = 2; 

或u还可以使用

TreeView1.TabStop = false; 
+0

不能相信我没有想到这是问题!现在,如果我能弄清楚如何禁用选择任何节点的能力,我将会处于良好状态。 – Codezilla

相关问题