,,浅谈C#中ListView类的用法

,,浅谈C#中ListView类的用法

摘要:本文主要介绍了ListView在C#中的用法,通过示例代码详细介绍,对大家的学习或工作有一定的参考价值。有需要的朋友下面和边肖一起学习。

一、ListView类  

1、常用的基本属性:

(1)FullRowSelect:设置是否选择行选择模式。(默认值为false)提示:该属性仅在详细视图中有意义。

网格线:设置行与列之间是否显示网格线。(默认值为false)提示:该属性仅在详细视图中有意义。

(3) AllowColumnOrder:设置是否可以拖动列头来改变列的顺序。(默认值为false)提示:该属性仅在详细视图中有意义。

(4)View:获取或设置控件中各项的显示方式,包括Details、LargeIcon、List、SmallIcon、Tile(默认为LargeIcon)。

(5)多选:设置是否可以多选。(默认值为false)

(6)HeaderStyle:获取或设置列标题样式。

可点击:列标题就像按钮一样,当点击时,它们可以执行操作(比如排序)。

不可点击:列标题不响应鼠标点击。

无:不显示列标题。

(7)LabelEdit:设置用户是否可以编辑控件中项的标签。对于详细视图,只能编辑该行第一列的内容。(默认值为false)

(8)复选框:设置是否在控件中的每个项目旁边显示复选框。(默认值为false)

(9)LargeImageList:一组大图标。提示:仅在LargeIcon视图中使用。

(10)SmallImageList:一组小图标。提示:仅用于小图标视图。

(11)StateImageList:图像掩码。这些图像遮罩可用作LargeImageList和SmallImageList图像的覆盖图,可用于指示应用程序定义的项目状态。(暂时不太懂)

(12)SelectedItems:获取控件中选中的项目。

(13)CheckedItems:获取控件中当前复选框选中的项目。

(14)排序:对列表视图中的项目进行排序。(默认为无)

升序:项目按升序排序。

降序:项目按降序排序。

无:不对项目进行排序。

(15)可滚动:设置当没有足够的空间显示所有项目时是否显示滚动条。(默认为真)

(16)HoverSelection:设置当鼠标指针悬停在某个项目上时,是否自动选择该项目。(默认值为false)

(17)HotTracking:设置当鼠标指针经过项目时,项目的外观是否变成超链接。(默认值为false)

(18)HideSelection:设置当控件没有焦点时,选中的项目是否仍然高亮显示。(默认值为false)

(19)ShowGroups:设置是否分组显示项目。(默认为假);

(20)分组:设置分组对象的集合。

(21)TopItem:获取或设置控件中的第一个可见项,可用于定位。(效果类似于EnsureVisible方法)

2、常用方法:

(1)BeginUpdate:避免在调用EndUpdate方法之前描述控件。在插入大量数据时,可以有效避免控件的闪烁,大大提高速度。

(2)end update:begin update方法挂起描述后,继续描述列表视图控件。(结束更新)

(3)EnsureVisible:列表视图滚动到指定索引项的选项行。(效果类似于TopItem属性)

(4) FindeditemWithText:查找以给定文本值开头的第一个ListViewItem。

(5)FindNearestItem:根据指定的搜索方向,从给定点开始搜索下一项。提示:该方法只能在LargeIcon或SmallIcon视图中使用。

3、常用事件:

(1)AfterLabelEdit:在用户完成编辑项目的标签时发生,并且LabelEdit属性需要为true。

(2)BeforeLabelEdit:当用户开始编辑项目的标签时发生。

(3)ColumnClick:当用户单击列表视图控件中的列标题时发生。

二、ListView的五种视图:

1.LargeIcon:每个项目都显示为最大化的图标,下面有一个标签。(效果见下图)

2.SmallIcon:每个项目都显示为一个小图标,右边有一个标签。(效果见下图)

3、列表:每个项都显示为一个小图标,在它的右边带一个标签。各项排列在列中,没有列标头。(效果见下图)

4、细节:可以显示任意的列,但只有第一列可以包含一个小图标和标签,其它的列项只能显示文字信息,有列表头。(效果见下图)

5、瓷砖:每个项都显示为一个完整大小的图标,在它的右边带项标签和子项信息。(只有Windows XP和Windows Server 2003系列支持)

细节视图:

这个。列表视图1。小imagelist=this。imagelist 1;//将列表视图的图标集与图像列表一绑定

(1)列表头创建(记得,需要先创建列表头)

列标题ch=新列标题();

栗色Text='列标题1';//设置列标题

栗色宽度=120;//设置列宽度

栗色TextAlign=HorizontalAlignment .左;//设置列的对齐方式

这个。列表视图1。列。添加(ch);//将列头添加到列表视图控件。

或者

this.listView1.Columns.Add('列标题1 ',120,水平对齐。左);//一步添加

(2)添加数据项

这个。列表视图1。开始更新();//数据更新,用户界面暂时挂起,直到最终更新绘制控件,可以有效避免闪烁并大大提高加载速度

for(int I=0;i 10i ) //添加10行数据

{

listview item lvi=new listview item();

路易威登图像索引=I;//通过与图像列表绑定,显示图像列表中第我项图标

路易威登text=' subitem ' I;

路易威登。子项。添加('第2列,第我行');

路易威登。子项。添加('第3列,第我行');

这个。列表视图1。项目。add(lvi);

}

这个。列表视图1。结束更新();//结束数据处理,用户界面界面一次性绘制。

(3)显示项

foreach(这个。列表视图1。项目中的ListViewItem项)

{

//处理行

for(int I=0;一项。子项。计数;我)

{

//处理列

消息框.显示(项目。分项目[我].正文);

}

}

(4)移除某项

foreach(列表视图1中的ListViewItem lvi .SelectedItems) //选中项遍历

{

列表视图1。项目。移除At(lvi .指数);//按索引移除

//listView1 .项目。移除(lvi);//按项移除

}

(5)行高设置(利用图像列表实现)

ImageList img list=new ImageList();

imgList .图像大小=新大小(1,20);//设置行高20 //分别是宽和高

列表视图1。SmallImageList=imgList//这里设置列表视图的SmallImageList,用imgList将其撑大

(6)清空

这个。列表视图1。clear();//从控件中移除所有项和列(包括列表头)。

这个。列表视图1。项目。clear();//只移除所有的项。

运行效果:

大图标视图:

this.listView1.View=View .大型图标;

这个。列表视图1。大imagelist=this。imagelist 2;

这个。列表视图1。开始更新();

for(int I=0;i 10我)

{

listview item lvi=new listview item();

路易威登图像索引=I;

路易威登. text=' item ' I;

这个。列表视图1。项目。add(lvi);

}

这个。列表视图1。结束更新();

运行效果:

小图标视图:

this.listView1.View=View .小图标

这个。列表视图1。小imagelist=this。imagelist 1;

这个。列表视图1。开始更新();

for(int I=0;i 10我)

{

listview item lvi=new listview item();

路易威登图像索引=I;

路易威登. text=' item ' I;

这个。列表视图1。项目。add(lvi);

}

这个。列表视图1。结束更新();

运行效果:

列表视图:

this.listView1.View=View .列表;

这个。列表视图1。小imagelist=this。imagelist 1;

这个。列表视图1。开始更新();

for(int I=0;i 10我)

{

listview item lvi=new listview item();

路易威登图像索引=I;

路易威登. text=' item ' I;

这个。列表视图1。项目。add(lvi);

}

这个。列表视图1。结束更新();

运行效果:

三、其它应用

1、分组:

listview group man _ lvg=new listview group();//创建男生分组

man_lvg .Header='男生;//设置组的标题。

//man_lvg .Name=' man//设置组的名称。

man_lvg .页眉对齐=水平对齐.左;//设置组标题文本的对齐方式。(默认为左)

listview group women _ lvg=new listview group();//创建女生分组

女人_lvg .Header='女生;

//女人_lvg .Name='女人

女人_lvg。header alignment=horizontal alignment。居中;//组标题居中对齐。

this . listview 1 . groups . add(man _ lvg);//将男孩分组添加到列表视图中

this . listview 1 . groups . add(women _ lvg);//将男孩分组添加到列表视图中

this . listview 1 . show groups=true;//记住将ShowGroups属性设置为true(默认为false),否则不会显示分组。

for(int I=0;i5;我)

{

listview item lvi=new listview item();

路易威登。image index=I;

路易威登。text=' item ' I;

路易威登。ForeColor=颜色。蓝色;//设置行颜色

路易威登。SubItems.Add('列2,行' I ');

路易威登。SubItems.Add('列3,行' I ');

man_lvg。items . Add(lvi);//在组中添加孩子

//或者lvi。Group=man _ lvg//在组中添加孩子

this . listview 1 . items . add(lvi);

}

操作效果:

2.查找文本(只能找到与前缀匹配的文本,并且只能找到第一个匹配项):

listview item found item=this . listview 1 . finditemwithtext(this . textbox 1 . text,true,0);//参数1:要查找的文本;参数2:是否搜索子项;3:开始找位置。

if (foundItem!=空)

{

this . listview 1 . topitem=found item;//导航到此项

foundItem。ForeColor=颜色。红色;

}

关于在C#中使用ListView的这篇文章就到这里了。有关C #中listview的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 设计一个简单的C#控制台应用程序,C#控制台程序,C# 创建控制台应用程序
  • 深入解析windows第8版,深入解析C#(第4版)
  • 数组代码,c# 数组操作,C# 数组实例介绍(图文)
  • 学会C#要多久,学会c#要多久,c#学习之30分钟学会XAML
  • 回溯法01背包问题c,回溯法求解01背包问题伪代码,C#使用回溯法解决背包问题实例分析
  • xml文件转义字符,xml转意字符,C# XML中的转义字符操作
  • winform 进度条控件,c# 进度条使用
  • winform 进度条控件,c# 进度条使用,C#使用winform实现进度条效果
  • winform backgroundworker,c# isbackground
  • winform backgroundworker,c# isbackground,C# BackgroundWorker用法详解
  • lua与c#交互,lua c#
  • lua与c#交互,lua c#,ToLua框架下C#与Lua代码的互调操作
  • linq c#,linq原理 c#
  • linq c#,linq原理 c#,c#中LINQ的基本用法实例
  • java decimal保留两位小数,sql中decimal函数保留2位小数,C#中decimal保留2位有效小数的实现方法
  • 留言与评论(共有 条评论)
       
    验证码: