在datagrid上实现treeview

问题描述 投票:0回答:1

我有动态树视图使用数据表从数据库获取所需的信息。

现在我正在尝试向treeview添加2列,然后我明白treeview必须在datagrid列上。

所以我搜索了很多并且困惑。

我使用下面的代码块来生成我的树视图,它就像一个魅力;

foreach (DataRow rows in folders.Rows)
            {
                if (Convert.ToInt32(rows["PARENTID"]) == parentID)
                {
                    String key = rows["ID"].ToString();
                    String text = rows["title"].ToString();
                    TreeNodeCollection newParentNode = parentNode.Add(key, text).Nodes;
                    PopulateTreeView(newParentNode, Convert.ToInt32(rows["ID"]), folders);
                }
            }

但是,正如我所说,我需要使用datagrid添加2个列。

我知道互联网上有一堆控件,但它们都太老了,不能使用上面的代码。

我应该按照哪种方式创建自己的treeviewgrid?

c# winforms
1个回答
0
投票

如果DataRow对象中还有两列,则可以执行以下操作:

  1. 您只需将附加列的数据附加到TreeNode的文本即可。 text += $"\t{rows["extraColumn1"].ToString()}\t{rows["extraColumn2"].ToString()}";
  2. 您可以将额外的列添加到工具提示中。这将要求您向表单添加ToolTip控件(以示例toolTip1命名),然后在鼠标移过节点时更新ToolTip on toolTip1属性。一点点工作,您还希望保留对填充工具提示的两列数据的引用。一种快速的方法是将rows对象设置为TreeNode的Tag属性。
  3. 您可以创建自己的TreeView控件扩展,它还有两个可以显示的字段。这将是相当多的工作。
© www.soinside.com 2019 - 2024. All rights reserved.