Tag: treeview

从路径列表中填充树视图

我正在尝试从文件夹路径列表填充树视图,例如: C:\WINDOWS\addins C:\WINDOWS\AppPatch C:\WINDOWS\AppPatch\MUI C:\WINDOWS\AppPatch\MUI\040C C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI\0409 像这样的输出: ├───addins ├───AppPatch │ └───MUI │ └───040C ├───Microsoft.NET │ └───Framework │ └───v2.0.50727 │ └───MUI │ └───0409 请注意列表中没有’C:\ WINDOWS \ Microsoft.NET’或’C:\ WINDOWS \ Microsoft.NET \ Framework’。 我已经工作了将近两天,我的代码中有一堆bug。 希望我能从这里得到帮助。 谢谢。 埃里克

将分层xml绑定到treeview

我有一个标准的.NET 3.5 winforms项目。 在它上面,它有一个树视图。 我已经使用XmlSerializer和相关类将List实例序列化为XML,以获得分层XML文件。 现在,我需要将此XML文件绑定到树视图以显示其所有节点/元素(父节点,子节点等)。 有没有方便这样做(LINQ与否),而不必解析XML等? 谢谢

Treeview闪烁?

我开始知道通过添加TreeView.BeginUpdate可以防止树视图的闪烁,但是当我将它添加到我的项目中时,我的树视图的所有节点都消失了,任何身体都可以告诉我它为什么会发生,这里是我使用TreeView的代码片段.BeginUpdate和TreeView.EndUpdate TreeNode treeNode = new TreeNode(“Windows”); treeView1.Nodes.Add(treeNode); // // Another node following the first node. // treeNode = new TreeNode(“Linux”); treeView1.Nodes.Add(treeNode); // // Create two child nodes and put them in an array. // … Add the third node, and specify these as its children. // TreeNode node2 = new TreeNode(“C#”); TreeNode node3 = new […]

C#:TreeView所有者使用ownerdrawtext进行绘制,并在单击节点时使用奇怪的黑色突出显示

我将DrawMode设置为OwnerDrawText并添加到DrawNode事件,添加我的代码以我想要的方式绘制文本,并且一切正常,除了选择节点时突出显示的一些奇怪的黑色选项。 没问题,我添加了逻辑来检查节点的状态是否突出显示并绘制了我自己的突出显示,除了在单击节点时添加黑色突出显示,而不仅仅是选中…一旦鼠标按钮突出显示我的矩形突出显示被释放但确实被吸引并眨眼……这很烦人。 :/ 显然我忘了真的问我的问题……如果不完全处理绘图,怎么会去除选择?

枚举本质上不是IEnumerable的集合?

当你想递归枚举一个分层对象,根据一些标准选择一些元素时,有许多技术的例子,比如“展平”,然后使用Linq进行过滤:如下所示: 链接文字 但是,当你枚举类似Form的Controls集合或TreeView的Nodes集合时,我一直无法使用这些类型的技术,因为它们似乎需要一个参数(对于扩展方法),这是一个IEnumerable集合:传入SomeForm.Controls不编译。 我发现最有用的是: 链接文字 这为您提供了Control.ControlCollection的扩展方法,其中包含IEnumerable结果,然后您可以使用Linq。 我修改了上面的例子来解析TreeView的节点没有问题。 public static IEnumerable GetNodesRecursively(this TreeNodeCollection nodeCollection) { foreach (TreeNode theNode in nodeCollection) { yield return theNode; if (theNode.Nodes.Count > 0) { foreach (TreeNode subNode in theNode.Nodes.GetNodesRecursively()) { yield return subNode; } } } } 这是我现在使用扩展方法编写的代码: var theNodes = treeView1.Nodes.GetNodesRecursively(); var filteredNodes = ( from n in theNodes where […]

文件系统TreeView

我正在使用文件系统,我有一个List 文件对象,文件路径作为属性。 基本上我需要在.NET中创建一个树视图,但我很难想到最好的方法去做这个,因为我需要从列表创建一个树结构,如: C:/WINDOWS/Temp/ErrorLog.txt C:/Program Files/FileZilla/GPL.html C:/Documents and Settings/Administrator/ntuser.dat.LOG 等等…. 该列表根本没有结构,我无法对当前的对象结构进行任何更改。 我在C#工作。 非常感谢所有贡献者

使用文件系统目录结构填充TreeView

我是新的节点在这里.. :)我想出了这个算法,但它只显示父节点列表..像这样.. a a.txt b c c m n b o p etc… 我希望下一个节点将被放入上一个节点内的一个节点..所以它会像这样出现.. a a.txt b o p c m n etc… 我有一些想法,但我可以实现它代码.. :)任何帮助请.. private void ListDirectory(TreeView treeView, String path) { Stack stack = new Stack(); TreeNode DirFilesCollection = new TreeNode(); stack.Push(path); while (stack.Count > 0) { string dir = stack.Pop(); try { List […]

访问TreeView Control中的所有节点

我有一组带有节点和子节点的TreeView控件。 例如: ROOT有A,B,C。 A具有a1,a2,a3,然后a1,a2也包含一些节点,如x1,x2,x3等。 像这样很多子节点都在那里。 我知道可以使用带有for循环的循环。 我只想使用一个或两个for循环访问TreeView控件中的所有节点。 是否有任何算法或有其他方法吗? 还有一个问题:是否可以使用任何库函数在对象或字符串中获取树节点的路径? 例如: string S = TreeView1.Nodes[i].Nodes[j].Nodes