如何禁用特定节点以使用户无法选择它。为用户隐藏它也是有效的。我尝试了Visible属性,但它隐藏了整个树(所有节点)。我只想禁用/隐藏一些节点。使用VisualStudio2005树节点编辑器的C#。 最佳答案 TreeNode本身没有任何Enabled属性,因此您需要找到一些跟踪该状态的方法。一种方法是创建一个继承TreeNode并具有Enabled属性的新类。另一种方法是维护一个禁用的树节点列表。完成后,您可以使用ForeColorTreeNode的属性使其显示为灰色(例如使用SystemColors.GrayText值)。最后
如何确定所选节点是TreeView控件中的子节点还是父节点? 最佳答案 具体如何实现此类检查取决于您如何定义“子”和“父”节点。但是每个TreeNode对象都有两个提供重要信息的属性:Nodesproperty返回该特定节点包含的TreeNode对象的集合。因此,通过简单地检查所选节点包含多少个子节点,您可以确定它是否是父节点:if(selectedNode.Nodes.Count==0){MessageBox.Show("Thenodedoesnothaveanychildren.");}else{MessageBox.Show(
如何确定所选节点是TreeView控件中的子节点还是父节点? 最佳答案 具体如何实现此类检查取决于您如何定义“子”和“父”节点。但是每个TreeNode对象都有两个提供重要信息的属性:Nodesproperty返回该特定节点包含的TreeNode对象的集合。因此,通过简单地检查所选节点包含多少个子节点,您可以确定它是否是父节点:if(selectedNode.Nodes.Count==0){MessageBox.Show("Thenodedoesnothaveanychildren.");}else{MessageBox.Show(
我有一个带有ImageList的TreeView窗体控件,我希望一些节点显示图像,但其他节点不显示图像。我不想要在图像应该出现的地方留出空白。我不想要一个看起来像TreeView在没有ImageList时会绘制的线条的图像。我如何让它为某些项目绘制图像而不是其他项目,而不诉诸像那样笨拙的黑客? 最佳答案 您需要将ImageIndex和SelectedImageIndex设置为大于ImageList中值数量的数字。例如,如果您创建此节点并将其添加到您的TreeView:TreeNodenode1=newTreeNode(string.
我有一个带有ImageList的TreeView窗体控件,我希望一些节点显示图像,但其他节点不显示图像。我不想要在图像应该出现的地方留出空白。我不想要一个看起来像TreeView在没有ImageList时会绘制的线条的图像。我如何让它为某些项目绘制图像而不是其他项目,而不诉诸像那样笨拙的黑客? 最佳答案 您需要将ImageIndex和SelectedImageIndex设置为大于ImageList中值数量的数字。例如,如果您创建此节点并将其添加到您的TreeView:TreeNodenode1=newTreeNode(string.
我试图在用户右键单击时在我的TreeView上显示一个弹出菜单-允许他们选择上下文相关的操作以应用于所选节点。此时用户必须左键单击节点然后右键单击才能选择。是否可以右键单击节点选择该节点-如果可以,最好的方法是什么。 最佳答案 左键单击和右键单击都会触发单击事件并导致选择发生变化。但是,在某些情况下(我还没有费心去追查),选择将从右键单击的节点更改为最初选择的节点。为了确保右键单击更改选择,您可以使用MouseDown事件强制更改所选节点:treeView.MouseDown+=(sender,args)=>treeView.Sel
我试图在用户右键单击时在我的TreeView上显示一个弹出菜单-允许他们选择上下文相关的操作以应用于所选节点。此时用户必须左键单击节点然后右键单击才能选择。是否可以右键单击节点选择该节点-如果可以,最好的方法是什么。 最佳答案 左键单击和右键单击都会触发单击事件并导致选择发生变化。但是,在某些情况下(我还没有费心去追查),选择将从右键单击的节点更改为最初选择的节点。为了确保右键单击更改选择,您可以使用MouseDown事件强制更改所选节点:treeView.MouseDown+=(sender,args)=>treeView.Sel
像这样:TreeNode[]treeNodes=treeView.Nodes.Find(searchString,true);但我希望它在text字段而不是name字段中搜索。 最佳答案 我不知道有任何内置方法,但您可以使用LINQTreeNode[]treeNodes=treeView.Nodes.Cast().Where(r=>r.Text=="yourText").ToArray(); 关于c#-有没有一种方法可以在TreeView.Nodes集合中搜索TreeNode.Text字
像这样:TreeNode[]treeNodes=treeView.Nodes.Find(searchString,true);但我希望它在text字段而不是name字段中搜索。 最佳答案 我不知道有任何内置方法,但您可以使用LINQTreeNode[]treeNodes=treeView.Nodes.Cast().Where(r=>r.Text=="yourText").ToArray(); 关于c#-有没有一种方法可以在TreeView.Nodes集合中搜索TreeNode.Text字
我想删除Node.Type为5或6的复选框。我使用以下代码:privatevoidTvOne_DrawNode(objectsender,DrawTreeNodeEventArgse){inttype=(e.NodeasNode).typ;if(type==5||type==6){ColorbackColor,foreColor;if((e.State&TreeNodeStates.Selected)==TreeNodeStates.Selected){backColor=SystemColors.Highlight;foreColor=SystemColors.HighlightTe