ListView
来源:互联网 发布:丰城网络问政有用吗 编辑:程序博客网 时间:2024/04/30 15:32
ListView
ListView概述
ListView控件包括ColumnHeader(列标题)和ListViewItem(数据行)。
ListView的Columns属性是所有ColumnHeader(列标题)的集合。
ListView的Items属性是所有ListViewItem(数据行)的集合。
lv.Items[0]:表示lv的第一行。
lv.Items[0].lv.Items.SubItems[0].Text:表示lv的第一行的第一列的值。
lv.Items[0].Text与lv.Items[0].SubItems[0].Text都是访问第0行第0列
ListView主要属性:
FocusedItes:获取控件中当前有焦点的项。
MultiSelect:是否可以有选取多个项。
SelectedItems:选定的项。
Sorting:指定ListView项应遵循的排序顺序。
FullRowSelect::设置为.t.时可以整行地选择数据。
HotTracking:设置为.t.时,鼠标所在行将以高亮度显示。
View:指法列表以哪种方式显示,包括:LargetIcon(大图标)、SmallIcon(小图标)、Details(详细信息)、List(列表)。默认为LargeIcon。
GridLine:设置为.t.时控件将显示网格线。(只作用于“Details”视图)
Columns:所有ColumnHeader(列标题)的集合。
Items:所有ListViewItem(数据行)的集合。
为ListView添加列的两种方法:见代码:
public void getListViewMsg(ListView lv)
...{
//设置显示方式:详细信息
lv.View = View.Details;
//显示CheckBox复选框
lv.CheckBoxes = true;
//显示网格线
lv.GridLines = true;
//鼠标所在行将以高亮度显示
lv.HotTracking = true;
//整行地选择数据
lv.FullRowSelect = true;
//建立一个标题列
ColumnHeader nameHeader = new ColumnHeader();
//设置标题列的标题
nameHeader.Text = "姓名";
//设置标题列的对齐方式
nameHeader.TextAlign = HorizontalAlignment.Center;
//设置标题列的显示宽度
nameHeader.Width = 100;
//第一种方法
//将nameHeader列添加到ListView的Columns中
lv.Columns.Add(nameHeader);
//第二种方法
lv.Columns.Add("性别",60,HorizontalAlignment.Center);
lv.Columns.Add("年纪",60,HorizontalAlignment.Center);
//建数据行
ListViewItem lstItem = new ListViewItem();
//添加第0列的值和添加其他列的值有区别
lstItem.SubItems[0].Text = "张三";
lstItem.SubItems.Add("男");
lstItem.SubItems.Add("28");
lv.Items.Add(lstItem);
lstItem = new ListViewItem();
lstItem.SubItems[0].Text = "李四";
lstItem.SubItems.Add("男");
lstItem.SubItems.Add("23");
lv.Items.Add(lstItem);
}
...{
//设置显示方式:详细信息
lv.View = View.Details;
//显示CheckBox复选框
lv.CheckBoxes = true;
//显示网格线
lv.GridLines = true;
//鼠标所在行将以高亮度显示
lv.HotTracking = true;
//整行地选择数据
lv.FullRowSelect = true;
//建立一个标题列
ColumnHeader nameHeader = new ColumnHeader();
//设置标题列的标题
nameHeader.Text = "姓名";
//设置标题列的对齐方式
nameHeader.TextAlign = HorizontalAlignment.Center;
//设置标题列的显示宽度
nameHeader.Width = 100;
//第一种方法
//将nameHeader列添加到ListView的Columns中
lv.Columns.Add(nameHeader);
//第二种方法
lv.Columns.Add("性别",60,HorizontalAlignment.Center);
lv.Columns.Add("年纪",60,HorizontalAlignment.Center);
//建数据行
ListViewItem lstItem = new ListViewItem();
//添加第0列的值和添加其他列的值有区别
lstItem.SubItems[0].Text = "张三";
lstItem.SubItems.Add("男");
lstItem.SubItems.Add("28");
lv.Items.Add(lstItem);
lstItem = new ListViewItem();
lstItem.SubItems[0].Text = "李四";
lstItem.SubItems.Add("男");
lstItem.SubItems.Add("23");
lv.Items.Add(lstItem);
}
例:得到指定文件夹下的文件夹及文件名列表。如下图:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace listview
...{
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
this.ListViewSet();
}
/**//// <summary>
/// ListView 设置
/// </summary>
private void ListViewSet()
...{
this.GetFolderTreeView(@"C:");
//ListView显示方式
lv.View = View.Details;
}
/**//// <summary>
/// 得到目录中的内容
/// </summary>
private void GetFolderTreeView(string path)
...{
lv.Clear();
增加Item的标题,共有三个列#region 增加Item的标题,共有三个列
//创建标题,共三列
lv.Columns.Add("文件名",200);
lv.Columns.Add("大小",100);
lv.Columns.Add("创建日期",250);
#endregion
//开始更新
lv.BeginUpdate();
DirectoryInfo diInfo = new DirectoryInfo(path);
DirectoryInfo[] dirs = diInfo.GetDirectories();
FileInfo[] fiInfo = diInfo.GetFiles();
ListViewItem lviItem;
ListViewItem.ListViewSubItem lviSubItem;
//目录名
foreach (DirectoryInfo di in dirs)
...{
lviItem = new ListViewItem();
lviItem.Text = di.Name;
//得到文件夹的路径
lviItem.Tag = di.FullName;
lviSubItem = new ListViewItem.ListViewSubItem();
//文件夹没有大小
lviSubItem.Text = "";
lviItem.SubItems.Add(lviSubItem);
lviSubItem = new ListViewItem.ListViewSubItem();
lviSubItem.Text = di.CreationTime.ToString();
lviItem.SubItems.Add(lviSubItem);
lv.Items.Add(lviItem);
}
//文件名及创建时间
foreach (FileInfo fi in fiInfo)
...{
lviItem = new ListViewItem();
lviItem.Text = fi.Name;
lviSubItem = new ListViewItem.ListViewSubItem();
lviSubItem.Text = fi.Length.ToString();
lviItem.SubItems.Add(lviSubItem);
lviSubItem = new ListViewItem.ListViewSubItem();
lviSubItem.Text = fi.CreationTime.ToString();
lviItem.SubItems.Add(lviSubItem);
lv.Items.Add(lviItem);
}
//结束更新
lv.EndUpdate();
}
/**//// <summary>
/// 定义变量存放路径
/// </summary>
string sfileName = "";
/**//// <summary>
/// 在激活一项时发生
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lv_ItemActivate(object sender, EventArgs e)
...{
ListView lvControl = (ListView)sender;
//Tag属性获得与用户关联的数据
//如:C:Program FilesKuGoo2007
sfileName = lvControl.SelectedItems[0].Tag.ToString();
if (lvControl.SelectedItems[0].Text == "")
...{
// MessageBox.Show(lv.SelectedItems[0].Text);
try
...{
System.Diagnostics.Process.Start(sfileName);
}
catch
...{
return;
}
}
else
...{
GetFolderTreeView(sfileName);
}
}
private void btnReturn_Click(object sender, EventArgs e)
...{
/**//*
原理:得到路径,然后截取最后一个""之前的路径,并将其路径赋给你路径变量。
再次单击返回时,截取此变量中最后一个""之前的路径。
当获得不到""的位置时说明到达顶层。
*/
int iPosition = sfileName.LastIndexOf("/") + 1;
if (iPosition > 0)
...{
string sA = sfileName.Substring(0, iPosition);
GetFolderTreeView(sA);
sfileName = sfileName.Substring(0, iPosition - 1); ;
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace listview
...{
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
this.ListViewSet();
}
/**//// <summary>
/// ListView 设置
/// </summary>
private void ListViewSet()
...{
this.GetFolderTreeView(@"C:");
//ListView显示方式
lv.View = View.Details;
}
/**//// <summary>
/// 得到目录中的内容
/// </summary>
private void GetFolderTreeView(string path)
...{
lv.Clear();
增加Item的标题,共有三个列#region 增加Item的标题,共有三个列
//创建标题,共三列
lv.Columns.Add("文件名",200);
lv.Columns.Add("大小",100);
lv.Columns.Add("创建日期",250);
#endregion
//开始更新
lv.BeginUpdate();
DirectoryInfo diInfo = new DirectoryInfo(path);
DirectoryInfo[] dirs = diInfo.GetDirectories();
FileInfo[] fiInfo = diInfo.GetFiles();
ListViewItem lviItem;
ListViewItem.ListViewSubItem lviSubItem;
//目录名
foreach (DirectoryInfo di in dirs)
...{
lviItem = new ListViewItem();
lviItem.Text = di.Name;
//得到文件夹的路径
lviItem.Tag = di.FullName;
lviSubItem = new ListViewItem.ListViewSubItem();
//文件夹没有大小
lviSubItem.Text = "";
lviItem.SubItems.Add(lviSubItem);
lviSubItem = new ListViewItem.ListViewSubItem();
lviSubItem.Text = di.CreationTime.ToString();
lviItem.SubItems.Add(lviSubItem);
lv.Items.Add(lviItem);
}
//文件名及创建时间
foreach (FileInfo fi in fiInfo)
...{
lviItem = new ListViewItem();
lviItem.Text = fi.Name;
lviSubItem = new ListViewItem.ListViewSubItem();
lviSubItem.Text = fi.Length.ToString();
lviItem.SubItems.Add(lviSubItem);
lviSubItem = new ListViewItem.ListViewSubItem();
lviSubItem.Text = fi.CreationTime.ToString();
lviItem.SubItems.Add(lviSubItem);
lv.Items.Add(lviItem);
}
//结束更新
lv.EndUpdate();
}
/**//// <summary>
/// 定义变量存放路径
/// </summary>
string sfileName = "";
/**//// <summary>
/// 在激活一项时发生
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lv_ItemActivate(object sender, EventArgs e)
...{
ListView lvControl = (ListView)sender;
//Tag属性获得与用户关联的数据
//如:C:Program FilesKuGoo2007
sfileName = lvControl.SelectedItems[0].Tag.ToString();
if (lvControl.SelectedItems[0].Text == "")
...{
// MessageBox.Show(lv.SelectedItems[0].Text);
try
...{
System.Diagnostics.Process.Start(sfileName);
}
catch
...{
return;
}
}
else
...{
GetFolderTreeView(sfileName);
}
}
private void btnReturn_Click(object sender, EventArgs e)
...{
/**//*
原理:得到路径,然后截取最后一个""之前的路径,并将其路径赋给你路径变量。
再次单击返回时,截取此变量中最后一个""之前的路径。
当获得不到""的位置时说明到达顶层。
*/
int iPosition = sfileName.LastIndexOf("/") + 1;
if (iPosition > 0)
...{
string sA = sfileName.Substring(0, iPosition);
GetFolderTreeView(sA);
sfileName = sfileName.Substring(0, iPosition - 1); ;
}
}
}
}
- listview
- listview
- listview
- ListView
- ListView
- listview
- listview
- listView
- ListView
- ListView
- ListView
- listview
- LIstView
- ListView
- listview
- ListView
- ListView
- ListView
- 直接选择排序
- excell vba 窗体程序请教
- 起泡排序
- MD5加密
- C#精髓
- ListView
- 触发器update()和columns_update()函数的使用
- 网页卡在1/3处之后3、4秒才把页面加载完
- Diameter协议
- 理解I/O Completion Port
- java面试精品全集
- 简单对象协议(SOAP)简介(转)
- 企业需要什么样的知识管理咨询方法论体系
- 幸运的印度女婴