在同一窗口中单独显示树节点详细信息 [英] Showing tree node details separately in the same window

查看:126
本文介绍了在同一窗口中单独显示树节点详细信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用C#windows窗体创建一个类似app的资源管理器。它列出了所有文件和文件夹,从所选路径创建XML文件,并使用该信息填充树视图。每个文件夹都有详细信息(文件夹名称,文件夹大小和文件数),每个文件都有详细信息(文件名,文件大小(字节),文件创建,文件上次访问时间,文件上次修改时间)。



到目前为止,我已经设法在树视图中显示细节,当选择树节点时,它会显示这些细节,我想要的是在树视图中只显示树节点名称和选择时,它在列表视图中显示详细信息。



我尝试过:



这是我创建树节点的地方:



 private void AddTreeNode(XElement xElement,TreeNode treeNode)
{
foreach(var att in xElement.Attributes())
{
treeNode.Text = treeNode.Text ++ att.Name.LocalName +:+ att.Value;
}

foreach(xElement.Elements()中的XElement childElement)
{
TreeNode节点= treeNode.Nodes [treeNode.Nodes.Add(new TreeNode(childElement) 。值))];
AddTreeNode(childElement,Node);
}
}







这是我试图展示它的地方在列表视图中:



 private void folderBrowserTree_AfterSelect(object sender,TreeViewEventArgs e)
{
listDetails.Items.Clear ();
string str = folderBrowserTree.SelectedNode.Text;

var details = str.Split();
listDetails.Items.Add(Name:+ details [0]);

for(int i = 1; i< details.Length; i ++)
{
listDetails.Items.Add(details [i]);
}

}

解决方案

您应该将表单分成两半,参见 SplitContainer类 [ ^ ]

I am making an explorer like app in C# windows form. It lists all files and folders creates XML file from selected path and fills tree view with that info. Every folder has details(Folder Name, Folder Size and Number of Files) and every files has details(File name, File size (bytes), File creation, File last access time, File last modified time).

By now I have managed to display details in tree view and when tree node is selected it displays those details, what I want is that in tree view shows only tree node names and when selected it shows details in list view.

What I have tried:

This is where i create tree node:

private void AddTreeNode(XElement xElement, TreeNode treeNode)
        {
            foreach (var att in xElement.Attributes())
            {
                treeNode.Text = treeNode.Text + " " + att.Name.LocalName + ":" + att.Value;
            }

            foreach (XElement childElement in xElement.Elements())
            {
                TreeNode Node = treeNode.Nodes[treeNode.Nodes.Add(new TreeNode(childElement.Value))];
                AddTreeNode(childElement, Node);
            }
        }




And this is where I tried to display it in list view:

private void folderBrowserTree_AfterSelect(object sender, TreeViewEventArgs e)
        {            
            listDetails.Items.Clear();
            string str = folderBrowserTree.SelectedNode.Text;

            var details = str.Split();
            listDetails.Items.Add("Name: " + details[0]);
            
            for (int i = 1; i < details.Length; i++)
            {
                listDetails.Items.Add(details[i]);
            }

        }

解决方案

You should split your form into two halves, see SplitContainer Class[^]


这篇关于在同一窗口中单独显示树节点详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆