jjzjj

treeView2

全部标签

c# - 具有折叠/展开功能的控件 TreeView

平台:C#windows。.Net框架3.5、4.0。我有一些控件集,我想将其显示为TreeView。我已将控件集添加到TreeView中,如下所示:Controlcontrol;..................................Treeview1.Controls.Add(control);它向我展示了类似面板的树状View中的控件。它没有显示任何层次结构或加号/减号。所以我无法折叠/伸展树(SplayTree)节点。请您建议我解决它的方法。 最佳答案 @Banketeshvar,您可以使用Flowlayout面

c - 在 WTL/Win32 应用程序中如何处理右键单击 TreeView ?

我有一个用ATL编写的基本应用程序,使用VS2008的向导。我在应用程序的左侧有一个TreeView。我看到了如何(痛苦地)添加树项目。问题是如何在鼠标右键单击时显示菜单?如何在可以选择的每个项目上捕获任何点击事件? 最佳答案 您应该检测到WM_CONTEXTMENUWindows消息specifyingahandlerinyourmessagemap.在处理程序中,您可以显示上下文菜单。然后,您还需要确保在从上下文菜单中选择命令时处理消息映射中的菜单命令。使用COMMAND_HANDLER这部分的消息映射中的宏。

c# - 将节点添加到 treeView 中的特定父节点 (c#)

我目前正在向TreeView中的父节点添加各种值,虽然我无法找到如何添加到树下的特定节点,但目前它只是添加到“选定节点”using(varreader=File.OpenText("Configuration.ini")){Listhostnames=ParseExternalHosts(reader).ToList();foreach(stringsinhostnames){TreeNodenewNode=newTreeNode(s);hostView.SelectedNode.Nodes.Add(newNode);} 最佳答案

windows - 如何测量 TreeView 项目中文本的可用宽度?

我有一个标准的Win32TreeView控件。我将文件名放入根节点。为了避免要求用户使用水平滚动条,我想使用PathCompactPath来缩短文本以适应控件上的可用空间。所以,为了做到这一点,我需要测量上面屏幕截图中标记的距离。我知道TVM_GETITEMRECT但它返回一个矩形,其中包含图标占用的空间。那么,我怎样才能获得我需要的指标呢?甚至可以这样做吗? 最佳答案 您是否为TVM_GETITEMRECT的wParam参数指定了TRUE或FALSE?获取节点的文本矩形应该为TRUE。完成后,您可以从TreeView的客户端宽度中

c# - 在 GTK Treeview Mono 中打印所有行

我在gtk#中有一个单列TreeView,我需要从我的TreeView中的行中获取所有值myTreeView.AppendColumn("Path",newCellRendererText(),"text",0);myTreeView.Model=newListStore(typeof(string));有没有办法遍历每一行并获取行值? 最佳答案 我用过这个,对我来说效果不错。TreeIteriter;myTreeView.GetIterFirst(outiter);for(inti=0;i

c# - 填充 TreeView 时出现 "Out of Memory"

当我使用XML填充TreeView层次结构时,我遇到了“内存不足”问题。我们的XML结构非常复杂,而且格式不固定。有多个级别的子节点。我正在使用递归来迭代XML并填充TreeView结构。我试着调用GC.Collect。清除内存但它仍然抛出相同的错误。我正在使用.NETFramework3.5的C#进行开发。如果您能帮我找到解决方案,我将不胜感激。我在下面提供了用于填充TreeView的代码privatevoidaddTreeNode(XmlNodexmlNode,TreeNodetreeNode){stringattribute="";treeView1.ImageList=imag

windows - 为什么 TVM_GETITEM 消息在 comctl32.ocx 或 mscomctl.ocx TreeView 上失败?

我编写了一个函数,它可以生成TreeView项的文本,即使TreeView在远程进程中也是如此。该函数在远程进程中分配两个内存块,填充TVITEM结构(已复制到远程进程中),发送TVM_GETITEM消息,最后将第二个远程内存块的内容读回本地缓冲区。这是代码:std::stringgetTreeViewItemText(HWNDtreeView,HTREEITEMitem){DWORDpid;::GetWindowThreadProcessId(treeView,&pid);HANDLEproc=::OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM

c# - TreeView 自定义 DrawNode .NET 3.5 Windows 窗体

我想在TreeView中以OwnerDrawText模式自定义DrawNode。我发现即使使用这个处理程序它也很慢:voidRegistryTreeDrawNode(objectsender,DrawTreeNodeEventArgse){e.DrawDefault=true;}我做错了什么吗?谢谢。 最佳答案 我认为您可能需要针对您要执行的操作显示更多代码。与所有者的绘图相比,不应该有任何明显不同的绘图;您基本上是在覆盖默认绘制,然后在您发布的内容中撤消它。这是毫无意义的丑陋......但不应该成为性能打击。因此,从缺乏代码转向追

c# - 如何在 TreeView 中获取当前选定的节点

如何在TreeView中获取选定(单击)的节点并将其作为字符串返回? 最佳答案 privatevoidtreeView1_AfterSelect(objectsender,TreeViewEventArgse){stringselectedNodeText=e.Node.Text;} 关于c#-如何在TreeView中获取当前选定的节点,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

c - 在 Windows 中移动 TreeView 项目

我一直在使用WinAPI开发TreeView系统。我围绕一些功能构建了包装器,这些功能允许我在控件中插入新项目、删除项目和移动项目。然而,移动元素似乎是一件让人头疼的事情。我在MSDN(http://msdn.microsoft.com/en-us/library/aa925848.aspx)中找不到任何可以解决我的问题的函数。因此,我不得不创建一个肮脏的黑客来保存项目的属性,删除旧项目并将项目插入新位置。这是一个小代码片段:TVITEMtvitem;charchrTextBuffer[33];tvitem.mask=TVIF_TEXT;tvitem.cchTextMax=sizeof