C_中的ListView控件实例教程

合集下载

C#ListView控件的属性和实际操作

C#ListView控件的属性和实际操作

C#ListView控件的属性和实际操作常⽤属性:View设置或返回控件的视图类型值说明1-LvwIcon 图标类型2-LvwSmallIcon ⼩图标类型3-LvwList 列表类型4-LvwReport 报表类型Arrange 设置后返回控件的图标排列⽅式(在图标视图下有效)值说明1-LvwNone 不排列2-LvwAutoLeft ⾃动靠右排列3-LvwAutoTop ⾃动靠左排列Icons、 SmallIcons、 ColumnHeaderIcons属性Icons指定图标视图时的图标与ImageList的绑定SmallIcons、 ColumnHeaderIcons指定列表视图时的图标与ImageList的绑定PICTURE、PictureAlignment属性分别指定ListView控件的背景图⽚和布局⽅式 ListItems(Index) 属性ListItems 属性是ListView控件中列表项的集合。

Index⽤于指定列表项集合中的⼀个对象,我们可以把这个对象看作对⼀⾏的引⽤ ListItems集合的属性1. Text 设置或返回显⽰⽂本2. key 关键字3. index 索引编号4. icon , smallicon 不同视图时显⽰单元格的图标5. checked 给checkboxes 打√6. selected 使处于选定状态7. ListSubitems(index)集合我们可以把这个集合看作对这⾏中单元格的引⽤ Text 设置或返回单元格显⽰的内容 Reporticon 设置单元格的图标8. Subitems(index) 设置或返回单元格⽂本 == ListSubitems(index).text ColumnHeaders(index) 属性ColumnHeaders 属性是ListView控件中列标头的集合1. text 显⽰标题⽂本2. key3. index4. icon 指定标题图标5. alignment 指定index列的对齐⽅式(注意:第⼀列也就是列表项不能指定)6. position 返回当前列的索引7. subitemindex 返回指定列的listsubitem索引 TextBackgroud 属性决定text的背景是透明还是ListView的背景⾊值 0 lvwTransparent 透明 1 lvw 不透明(⽤listview的背景⾊)Ghosted 属性 logic 决定是否虚状 HideColumnHeaders 属性隐藏表头 LabelWrap 属性标签转⾏ rgeIcon 或 View.SmallIcon 时才使⽤该属性 FullRowSelect 整⾏显⽰HotTracking 热点追踪⿏标指针⾃动调整为⼿型 HoverSelection 属性⾃动聚焦⿏标指针⾃动调整为⼿型 AllowColumnReorder属性值设置.t.时,⽤户可以⽤⿏标选中1列拖⾄其他地⽅进⾏重新排列 Sorted属性当值为.t.时,列表按字母排序常⽤⽅法:ListItems.add(index,key,text,icon,smallicon) 向listitems添加⼀列表项。

ListView列表视图控件使用举例详解

ListView列表视图控件使用举例详解

// folder // Create the two ListViewSubItems. lvsi = new ListViewItem.ListViewSubItem();//使用默认构造函数初始
化对象
lvsi.Text = ""; // Size - a folder has no size and so this column // is empty lvi.SubItems.Add(lvsi); // Add the subitem to the ListViewItem lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = stAccessTime.ToString(); // Last accessed column
private void PaintListView(string root) { try { // Two local variables that are used to create the items to insert ListViewItem lvi;//定义对象 ListViewItem.ListViewSubItem lvsi; // If there's no root folder, we can't insert anything. if (pareTo("") == 0) return;
可以任意改为其他名字,例如:“文件名“。
this.listViewFilesAndFolders.Columns.Add(colHead); // Insert the header//将第一列添加到ListView控件中 // Second header //同样向ListView控件中添加第二列 colHead = new ColumnHeader(); colHead.Text = "Size";//列名为“Size“大小 this.listViewFilesAndFolders.Columns.Add(colHead); // Insert the header // Third header

C#WinformListView使用

C#WinformListView使用

C#WinformListView使⽤以下内容均来⾃⽹上,个⼈收集整理,具体出处也难确认了,就没写出处了;⼀、基本使⽤:listView.View = View.Details;//设置视图listView.SmallImageList = imageList;//设置图标//添加列listView.Columns.Add("本地路径", 150, HorizontalAlignment.Left);listView.Columns.Add("远程路径", 150, HorizontalAlignment.Left);listView.Columns.Add("上传状态", 80, HorizontalAlignment.Left);listView.Columns.Add("耗时", 80, HorizontalAlignment.Left);//添加⾏var item = new ListViewItem();item.ImageIndex = 1;item.Text = name; //本地路径item.SubItems.Add(path); //远程路径item.SubItems.Add("ok"); //执⾏状态item.SubItems.Add("0.5"); //耗时统计listView.BeginUpdate();listView.Items.Add(item);listView.Items[listView.Items.Count - 1].EnsureVisible();//滚动到最后listView.EndUpdate();⼆、动态添加记录,ListView不闪烁:1.新建⼀个C# 类,命名为ListViewNF(NF=Never/No Flickering)2.复制如下代码class ListViewNF : System.Windows.Forms.ListView{public ListViewNF(){// Activate double bufferingthis.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);// Enable the OnNotifyMessage event so we get a chance to filter out// Windows messages before they get to the form's WndProcthis.SetStyle(ControlStyles.EnableNotifyMessage, true);}protected override void OnNotifyMessage(Message m){//Filter out the WM_ERASEBKGND messageif (m.Msg != 0x14){base.OnNotifyMessage(m);}}}3.修改你的WinForm对应的xxxx.Design.cs,将系统默认⽣成的System.Windows.Forms.ListView改为ListViewNF即可。

C# ListView控件

C#  ListView控件

C# ListView控件图8-13显示了Windows中最常用的ListView控件。

Windows为显示文件或文件夹提供了许多其他方式,ListView控件就包含其中一些方式,例如,显示大图标,详细视图等。

图8-13 磁盘信息列表视图通常用于显示数据,用户可以对这些数据和显示方式进行某些控制。

还可以把包含在控件中的数据显示为列和行(像网格一样),或者显示为一列,或者显示为图标表示。

最常用的列表视图就是图8-13中用于导航计算机机中盘符信息的视图。

ListView控件是本章中最复杂的一个控件,它包括了超出本书范围的内容,这里仅编写了一个示例,使用ListView控件中最重要的功能,为用户打下坚实的基础,并全面介绍可以使用的许多属性、事件和方法。

ListView的属性如表8-25所示。

方法。

表8-26 ListView控件的方法ListView控件也提供了BeginUpdate()方法和EndUpdate()方法,用于将大量的项添加到列表中,而无需以重绘的方式为列表添加项。

除此之外,ListView控件还具有如下几种方法,如表8-27所示。

下面创建一个实例,将驱动器的信息以列表的形式显示出来,包括每一个驱动器的名称、类型、总大小、可用空间以及备注等信息。

在这个实例中,列出了驱动器名称、驱动器根目录、驱动器磁盘格式、驱动器类型、驱动器卷标、总容量大小、剩余容量大小以及可用空闲容量大小等信息。

该实例的开发过程如下所示:(1)启动Microsoft Visual Studio 2010,创建新的项目ListDriver。

单击选中打开的空白窗体,设置其Text属性为“列表显示驱动器信息”。

(2)向打开的空白窗体中添加一个ListView控件,设置其Name属性为listView1;Dock属性为Fill;View属性为Details。

而Columns属性的设置如图8-14所示:图8-14 Columns属性的设置(3)双击窗体,在打开代码编辑窗口中,使用using引入相应的命名空间,具体如下所示:示出来。

C#WPFListView控件的实例详解

C#WPFListView控件的实例详解

C#WPFListView控件的实例详解C# WPF ListView控件的实例详解C#的WPF作为现在微软主流的桌⾯程序开发平台,相⽐过去的MFC时代,有了⾮常多的不同。

本⼈刚从MFC平台转过来,以为可以轻松上⼿,哪知碰到了很多问题,⼗分不解。

不得不乖乖回去看了本书,再继续回到边左边边学的路上。

在这边也推荐《深⼊浅出WPF》这本书,拿来上⼿还是极好的。

由于WPF以数据驱动UI的设计理念,很多控件⽤起来都与之前平台的相差很多,ListView控件算是有代表性的,这是进化的成果。

关于该控件的应该,很多参考了这篇博⽂,如觉本⼈记述不清楚,可去查阅。

WPF的代码分为前端和后端两部分,前端为UI,负责与⽤户进⾏交互;⽽后端则负责算法和数据的执⾏。

由于这种机制,我们程序员对两端都需要有⼀个⼤概的了解,且主要注重于后端,这点相⽐以前混起来的机制实在是好太多。

ListView控件的XAML代码⼤致如下书写:<ListView x:Name="listView" Height="165" VerticalAlignment="Top" HorizontalAlignment="Left" Width="604" BorderThickness="0,0,0,1" BorderBrush="#FFC8CCD4"> <ListView.View><!--设置列标签并将列成员与⼀个变量名称相绑定,以便后台链接修改--><GridView><GridViewColumn Header="姓名" Width="100" DisplayMemberBinding="{Binding Path=Name}"/><GridViewColumn Header="⼯作年限" Width="100" DisplayMemberBinding="{Binding Path=WorkYears}"/><GridViewColumn Header="⼯作电话" Width="100" DisplayMemberBinding="{Binding Path=WorkPhoneNumber}"/><GridViewColumn Header="邮箱" Width="100" DisplayMemberBinding="{Binding Path=Email}"/></GridView></ListView.View></ListView>代码中我们设置了⼀个四列,列项分别为“姓名”、“⼯作年限”、“⼯作电话”和“邮箱”的列表,并将各项的成员分别与⼀个变量名称相绑定。

C#中的ListView控件实例

C#中的ListView控件实例

C#中的ListView控件实例ListView可以通过四种不同的方式显示条目。

1.只能给ListView控件添加基于ListViewItem类的对象;2.ListViewItems属性:设置用于显示的属性;3.SubItems()方法:包含详细视图中显示的文本;4.View属性:设置以下四种显示方式:Details:详细信息;List:列表;LargeIcon:大图标;SmallIcon:小图标。

5.Details视图需要为Columns属性使用Add()方法添加列。

例一:namespace ListViewExercise{public partial class Form1 : Form{public Form1(){InitializeComponent();ListViewSet();CreateViewItemMethodOne();//CreateViewItemMethodTow();}/// <summary>/// ListView 设置/// </summary>private void ListViewSet(){//ListView显示方式listViewControl.View = View.Details;}/// <summary>/// //手动填加ListView方法1/// </summary>private void CreateViewItemMethodOne(){listViewControl.BeginUpdate();#region 增加Item的标题,共有三个列//1、创建标题listViewControl.Columns.Add("文件名");listViewControl.Columns.Add("大小");listViewControl.Columns.Add("创建日期");#endregion#region 手动填加ListView方法//2、增加第一个Item,在View.Details模式下,有点像第一列中一个值listViewControl.Items.Add("folder1","文件夹1",0);//3、增加第一个Item的第一个SubItem,在View.Details模式下,有点像第一列中一个值listViewControl.Items["folder1"].SubItems.Add("11");//增加第一个Item的第二个SubItem,在View.Details模式下,有点像第一列中一个值listViewControl.Items["folder1"].SubItems.Add("20080114");listViewControl.Items.Add("folder2","文件夹2",0);listViewControl.Items["folder2"].SubItems.Add("21");listViewControl.Items["folder2"].SubItems.Add("20080115");listViewControl.Items.Add("文件夹3");listViewControl.Items.Add("文件夹4");#endregionlistViewControl.EndUpdate();}/// <summary>/// 手动填加ListView方法2/// </summary>private void CreateViewItemMethodTow(){#region 增加Item的标题,共有三个列//1、创建标题,共三列listViewControl.Columns.Add("文件名");listViewControl.Columns.Add("大小");listViewControl.Columns.Add("创建日期");#endregionlistViewControl.BeginUpdate();#region 增加第一个Item//2、定义一个ListViewItem,在View.Details模式下,有点像第一列中一个值ListViewItem lvItem;//3、定义ListViewSubItem,在View.Details模式下,有点像第二列中一个值ListViewItem.ListViewSubItem lvSubItem;//实列化一个Item,在View.Details模式下,有点像加第一行的第一个值lvItem = new ListViewItem();//Item的显示的文字lvItem.Text = "文件夹1";//4、Item增加到ListView控件中,即增加第一行。

C#中ListView控件编程详解

C#中ListView控件编程详解

C#中ListView控件编程说明初次使用C#编程的人会感觉C#编程与MFC差别不大。

但是,仔细分析下来,不论是源代码的组织,窗体资源的描述,还是数据类型、控件用法,其实两者的差别是很大的。

个人感觉,无论是编程方法、编程风格、变成效率,还是程序界面的美观程度,C#无疑是新一代强大的编程工具。

相比而言,MFC编程确实已经老掉牙了。

下面,我们就针对C#中ListView控件的编程,看看C#的程序开发。

C#摒弃的MFC的List Control控件,取而代之的是ListView控件。

与List Control相比,ListView控件的编程和操作更加方便,其编程步骤如下:1、启动VS2008集成开发环境,新建一个C#的Windows窗体应用程序:MyListView2、打开工具箱,将ListView控件拖到主窗体上,并设置好大小。

如果希望在显示的项与项之间画上列表线,可以设置ListView控件的GridLines属性为:True,设置View属性为:Details,如下图。

3、双击主窗体Form1,在函数Form1_Load()中添加如下代码:private void Form1_Load(object sender, EventArgs e){//listView1.Columns.Add("", 0, HorizontalAlignment.Center);//1、为ListView控件添加列显示listView1.Columns.Add("序号", 60, HorizontalAlignment.Center);listView1.Columns.Add("名称", 120, HorizontalAlignment.Center);listView1.Columns.Add("单价", 90, HorizontalAlignment.Center);listView1.Columns.Add("数量", -2, HorizontalAlignment.Center);//2、声明一个ListViewItem数据集,并将需要插入的记录存储在数据集item1for (int i = 0; i < 3; i++){ListViewItem item1 = new ListViewItem();item1.SubItems.Clear();item1.SubItems[0].Text = "1";item1.SubItems.Add("照相机");item1.SubItems.Add("1000");item1.SubItems.Add("3");//3、将数据集item1添加到ListView控件listView1.Items.Add(item1);}}程序分析:1)该程序启动后,首先会执行函数Form1_Load(),加载主窗体。

想在C#中的listView 控件中显示图片:

想在C#中的listView 控件中显示图片:

在ListView控件中,想在ListView 中的第一列显示图片,比如当功能正常时显示对号,否则显示x号,在网上找了半天,都没找到解决办法。

最后在 上找到了答案::///questions/8276225/images-in-listview-subitem-c-sharp
首先你需要在WinForm 中添加一个imagelist 控件,在imagelist控件的图片集合中添加要显示的图片。

我的listView 中View 属性设置为details (其她的没试)。

然后将ListView的SmallImageList 属性赋值为添加的imagelist控件名。

之后:
?
这样就在行的第一列加了个图片。

以上是在View 为details 时,在第一列显示图片,下载在LargeIcon 下让ListView中的每个项目显示图片
1. 添加ImageList 控件这种相关属性:
主要设置了要显示的图片,及其要显示的大小:
添加如下代码:
lvwIcon.View = rgeIcon;
rgeImageList = imageList1;
for (int i = 0; i < 4; i++)
{
lvwIcon.Items.Add("图片" + (i+1));
lvwIcon.Items[i].ImageIndex = i;
} 显示效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#中的ListView控件实例教程ListView可以通过四种不同的方式显示条目。

1.只能给ListV iew控件添加基于ListViewItem类的对象; 2.ListViewItems属性:设置用于显示的属性;3.SubItems()方法:包含详细视图中显示的文本; 4.V iew属性:设置以下ListView可以通过四种不同的方式显示条目。

1.只能给ListView控件添加基于ListViewItem类的对象;2.ListV iewItems属性:设置用于显示的属性;3.SubItems()方法:包含详细视图中显示的文本;4.View属性:设置以下四种显示方式:Details:详细信息;List:列表;LargeIcon:大图标;SmallIcon:小图标。

5.Details视图需要为Columns属性使用Add()方法添加列。

例一:namespace ListViewExercise{public partial class Form1 : Form{public Form1(){InitializeComponent();ListViewSet();CreateViewItemMethodOne();//CreateViewItemMethodTow();}/// <summary>/// ListView 设置/// </summary>private void ListViewSet(){//ListView显示方式listViewControl.View = V iew.Details;}/// <summary>/// //手动填加ListV iew方法1/// </summary>private void CreateViewItemMethodOne(){listViewControl.BeginUpdate();#region 增加Item的标题,共有三个列//1、创建标题listViewControl.Columns.Add("文件名");listViewControl.Columns.Add("大小");listViewControl.Columns.Add("创建日期");#endregion#region 手动填加ListView方法//2、增加第一个Item,在V iew.Details模式下,有点像第一列中一个值listViewControl.Items.Add("folder1","文件夹1",0);//3、增加第一个Item的第一个SubItem,在V iew.Details模式下,有点像第一列中一个值listViewControl.Items["folder1"].SubItems.Add("11");//增加第一个Item的第二个SubItem,在V iew.Details模式下,有点像第一列中一个值listViewControl.Items["folder1"].SubItems.Add("20080114");listViewControl.Items.Add("folder2","文件夹2",0);listViewControl.Items["folder2"].SubItems.Add("21");listViewControl.Items["folder2"].SubItems.Add("20080115");listViewControl.Items.Add("文件夹3");listViewControl.Items.Add("文件夹4");#endregionlistViewControl.EndUpdate();}/// <summary>/// 手动填加ListView方法2/// </summary>private void CreateViewItemMethodTow(){#region 增加Item的标题,共有三个列//1、创建标题,共三列listViewControl.Columns.Add("文件名");listViewControl.Columns.Add("大小");listViewControl.Columns.Add("创建日期");#endregionlistViewControl.BeginUpdate();#region 增加第一个Item//2、定义一个ListViewItem,在V iew.Details模式下,有点像第一列中一个值ListViewItem lvItem;//3、定义ListViewSubItem,在V iew.Details模式下,有点像第二列中一个值ListViewItem.ListV iewSubItem lvSubItem;//实列化一个Item,在V iew.Details模式下,有点像加第一行的第一个值lvItem = new ListViewItem();//Item的显示的文字lvItem.Text = "文件夹1";//4、Item增加到ListView控件中,即增加第一行。

在V iew.Details模式下,有点像增加了第一个项目的第一列的第一个值listViewControl.Items.Add(lvItem);//实例化SubItemlvSubItem = new ListViewItem.ListViewSubItem();lvSubItem.Text = "10";//5、将SubItem增加到第一个Item中,在V iew.Details模式下,有点像增加了第一个项目的第二列的第一个值lvItem.SubItems.Add(lvSubItem);lvSubItem = new ListViewItem.ListViewSubItem();lvSubItem.Text = "20080114";//将SubItem增加到第一个Item中,在V iew.Details模式下,有点像增加了第一个项目的第三列的第一个值lvItem.SubItems.Add(lvSubItem);#endregion#region 增加第二个ItemlvItem = new ListViewItem();lvItem.Text = "文件夹2";lvSubItem = new ListViewItem.ListViewSubItem();lvSubItem.Text = "20";lvItem.SubItems.Add(lvSubItem);lvSubItem = new ListViewItem.ListViewSubItem();lvSubItem.Text = "20080115";lvItem.SubItems.Add(lvSubItem);listViewControl.Items.Add(lvItem);#endregionlistViewControl.EndUpdate();}}}ListView可以通过四种不同的方式显示条目。

1.只能给ListV iew控件添加基于ListViewItem类的对象; 2.ListViewItems属性:设置用于显示的属性;3.SubItems()方法:包含详细视图中显示的文本; 4.V iew属性:设置以下例二例2:得到指定文件夹下的文件夹及文件名列表。

如下图:代码:using System.IO;namespace ListViewExercise{public partial class Form1 : Form{public Form1(){InitializeComponent();ListViewSet();GetFolderTreeV iew(@"c:\");}/// <summary>/// ListView 设置/// </summary>private void ListViewSet(){//ListView显示方式listViewControl.View = V iew.Details;//项目的双击事件listViewControl.ItemActivate += new EventHandler(listViewControl_ItemActivate);//返回按钮的事件btnReturn.Click+=new EventHandler(btnReturn_Click);}/// <summary>/// 得到目录中的内容/// </summary>private void GetFolderTreeView(string asPath){listViewControl.Clear();#region 增加Item的标题,共有三个列//创建标题,共三列listViewControl.Columns.Add("文件名");listViewControl.Columns.Add("大小");listViewControl.Columns.Add("创建日期");#endregion//开始更新listViewControl.BeginUpdate();DirectoryInfo diInfo = new DirectoryInfo(asPath);DirectoryInfo[] dirs = diInfo.GetDirectories();FileInfo[] fiInfo = diInfo.GetFiles();ListViewItem lviItem;ListViewItem.ListV iewSubItem lviSubItem;foreach (DirectoryInfo di in dirs){lviItem = new ListViewItem();lviItem.Text = ;//得到文件夹的路径lviItem.Tag = di.FullName;lviSubItem = new ListViewItem.ListV iewSubItem();//文件夹没有大小lviSubItem.Text = "";lviItem.SubItems.Add(lviSubItem);lviSubItem = new ListViewItem.ListV iewSubItem();lviSubItem.Text = di.CreationTime.ToString();lviItem.SubItems.Add(lviSubItem);listViewControl.Items.Add(lviItem);}foreach (FileInfo fi in fiInfo){lviItem = new ListViewItem();lviItem.Text = ;lviSubItem = new ListViewItem.ListV iewSubItem();lviSubItem.Text = fi.Length.ToString();lviItem.SubItems.Add(lviSubItem);lviSubItem = new ListViewItem.ListV iewSubItem();lviSubItem.Text = fi.CreationTime.ToString();lviItem.SubItems.Add(lviSubItem);listViewControl.Items.Add(lviItem);}//结束更新listViewControl.EndUpdate();}/// <summary>/// 定义变量存放路径/// </summary>string sfileName = "";/// <summary>/// 项目的双击事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>void listViewControl_ItemActivate(object sender, EventArgs e) {ListView lvControl = (ListView)sender;sfileName = lvControl.SelectedItems[0].Tag.ToString();if (lvControl.SelectedItems[0].Tag.ToString() == ""){try{System.Diagnostics.Process.Start(sfileName);}catch{return;}}else{GetFolderTreeV iew(sfileName);}}/// <summary>/// 返回上一级/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnReturn_Click(object sender, EventArgs e){/*原理:得到路径,然后截取最后一个"\"之前的路径,并将其路径赋给你路径变量。

相关文档
最新文档