Winform控件之ListBox和TreeView

一、ListBox

->默认属性Items

->ItemsHeight属性值的大*与字体相关

->SelectionMode属性: MultiExtended表示按下ctrl多选; MultiSimple表示简单多选。

练习:使用ListBox添加图片路径并双击打开。  

提示:

通过添加鼠标双击事件或者ListBox的默认事件SelectIndexChanged事件(单击选中之后)来查看选中图片。

Tips:

1、常见的System.IO类:Path,File,Dictionary

Path:对包含文件或目录“路径”信息的string实例执行操作  

File:提供用于创建、复制、移动和打开文件的静态方法,并协助创建FileStream对象   

  ->AppendAllText方法:已重载,将指定的字符串追加到文件中,如果不存在则创建该文件

Dictionary:公开用于创建、移动和枚举通过目录和子目录的静态方法,无法继承此类

  ->GetFiles方法:重载,返回指定目录中的文件名称。

2、获得绝对路径  Path.GetFullPath只能寻找与程序文件在一起的文件的绝对路径。  

所以,要先定义一个集合,把绝对路径放进集合中,在通过SelectIndex索引用集合来调用,就可以查找到文件的绝对路径了。

 

代码:

        // 定义一个集合来存放图片的临时路径,作为后台管理
List<string> tempPath = new List<string>();
private void Form1_Load(object sender, EventArgs e)
{
string path = @"C:\Users\yumeng\Desktop\****";
string[] namePath = System.IO.Directory.GetFiles(path);
for (int i = 0; i < namePath.Length; i++)
{
listBoxPic.Items.Add(System.IO.Path.GetFileName( namePath[i]));
tempPath.Add(namePath[i]);
}
}

然后,添加鼠标双击事件,或者ListBox的默认事件SelectIndexChanged事件(单击选中之后)来查看选中图片。

private void listBoxPic_MouseDoubleClick(object sender, MouseEventArgs e)
{
System.Diagnostics.Process.Start(tempPath[listBoxPic.SelectedIndex]);
}

OK!

 

二、TreeView

Treeview是一种网状结构,而ComboBox是线性结构,即它是按照顺序来排列。TreeView的父节点与子节点都是一样的逻辑关系。

->默认属性Nodes

->默认事件AfterSelect

确定选中的节点对象用SelectNode

Tips:

->SelectImageIndex和SelectImageKey则用在图片导入进来之后

Tag属性:数据,Object类型,与对象关联的用户定义数据。(类似于一个后台处理数据,前台显示就是Text。)

      Tag绑定于每一个节点。

一个新的类型:TreeNode

TreeNode tn = new TreeNode() tn.Nodes属性,该属性是TreeNode类型。 每个节点上都绑定一个Tag数据类型,是object类型。 绑定到TreeView中的是根节点;绑定到跟节点的是子节点。

HideSelection属性:隐藏选中项 如果想打开文件在窗体的另一边显示,用ListView(ComboBox和TreeView的结合,有大图标*图标之分)。

图标文件用到了ImageList组件。将图片导入Images中就可以使用了。

使用代码添加根节点和子节点:

        private void btnRoot_Click(object sender, EventArgs e)
{
// 直接在TreeView里面添加根节点
string str = txtContext.Text.Trim();
treeView.Nodes.Add(str);
}

private void btnSub_Click(object sender, EventArgs e)
{
string str = txtContext.Text.Trim();
TreeNode tn = treeView.SelectedNode;
if (tn == null)
{
return;
}
tn.Nodes.Add(str);
}


posted @ 2012-02-15 18:48  王小萌  阅读(1166)  评论(0编辑  收藏  举报