创建包含 ListView 和 TreeView 控件的窗体

在“文件”菜单上指向“新建”,然后单击“项目”。

在“新建项目”对话框中,请执行以下操作:

  1. 在“项目类型”窗格中选择“Visual Basic 项目”或“Visual C# 项目”。

  2. 在“模板”窗格中选择“Windows 应用程序”。

单击“确定”。新建了一个 Windows 窗体项目。

向该窗体添加一个 控件,并将其 属性设置为 。

向该窗体添加一个名为 imageList1 的 ,然后使用属性浏览器按所列顺序添加两个图标:一个文件夹图标和一个文档图标。

向该窗体添加一个名为 treeview1TreeView 控件,将其置于 SplitContainer 控件的左侧。在 treeView1 的属性浏览器中执行以下操作:

  1. 将 属性设置为 Fill

  2. 将 属性设置为 imagelist1.

向该窗体中添加一个名为 listView1ListView 控件,将其置于 SplitContainer 控件的右侧。在 listview1 的属性浏览器中执行以下操作:

  1. Dock 属性设置为 Fill

  2. 将 属性设置为 。

  3. 单击 属性中的椭圆 (),以打开 ColumnHeader 集合编辑器。添加三列,并将其 属性分别设置为 NameTypeLast Modified。单击“确定”关闭对话框。

  4. 将 属性设置为 imageList1.

实现代码以便将节点和子节点填充到 TreeView 中。示例代码从文件系统读取,并且要求应用程序目录中存在 folder.icodoc.ico, 这两个图标。

private void PopulateTreeView()
            {
            TreeNode rootNode;
            DirectoryInfo info = new DirectoryInfo(@"C:\Documents and Settings");
            if (info.Exists)
            {
            rootNode = new TreeNode(info.Name);
            rootNode.Tag = info;
            GetDirectories(info.GetDirectories(), rootNode);
            treeView1.Nodes.Add(rootNode);
            }
            }
            private void GetDirectories(DirectoryInfo[] subDirs,
            TreeNode nodeToAddTo)
            {
            TreeNode aNode;
            DirectoryInfo[] subSubDirs;
            foreach (DirectoryInfo subDir in subDirs)
            {
            aNode = new TreeNode(subDir.Name, 0, 0);
            aNode.Tag = subDir;
            aNode.ImageKey = "folder";
            subSubDirs = subDir.GetDirectories();
            if (subSubDirs.Length != 0)
            {
            GetDirectories(subSubDirs, aNode);
            }
            nodeToAddTo.Nodes.Add(aNode);
            }
            }
            

在窗体的构造函数或 事件处理方法中,调用上一步中的设置方法。

public Form1()
            {
            InitializeComponent();
            PopulateTreeView();
            }
            

处理 treeview1 的 事件,实现代码以便在单击某个节点时,用该节点的内容来填充 listview1

void treeView1_NodeMouseClick(object sender,
TreeNodeMouseClickEventArgs e)
{
TreeNode newSelected = e.Node;
listView1.Items.Clear();
DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag;
ListViewItem.ListViewSubItem[] subItems;
ListViewItem item = null;
foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories())
{
item = new ListViewItem(dir.Name, 0);
subItems = new ListViewItem.ListViewSubItem[]
{new ListViewItem.ListViewSubItem(item, "Directory"),
new ListViewItem.ListViewSubItem(item,
dir.LastAccessTime.ToShortDateString())};
item.SubItems.AddRange(subItems);
listView1.Items.Add(item);
}
foreach (FileInfo file in nodeDirInfo.GetFiles())
{
item = new ListViewItem(file.Name, 1);
subItems = new ListViewItem.ListViewSubItem[]
{ new ListViewItem.ListViewSubItem(item, "File"),
new ListViewItem.ListViewSubItem(item,
file.LastAccessTime.ToShortDateString())};
item.SubItems.AddRange(subItems);
listView1.Items.Add(item);
}
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
}

到此程序演示完毕

 

转载于:https://www.cnblogs.com/woshishandawang/archive/2008/03/03/1088454.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值