63.C# ListView控件

摘要

Windows窗体ListView控件显示带图标的项列表。你可以使用列表视图创建类似Windows资源管理器右窗格的用户界面。该控件有四种视图模式:LargeIcon、SmallIcon、List和Details。

正文

属性

CheckBoxes

获取或设置一个值,该值指示控件中各项的旁边是否显示复选框。

CheckedIndices

获取控件中当前选中项的索引。

CheckedItems

获取控件中当前选中的项。

Columns

获取控件中显示的所有列标题的集合。

FullRowSelect

获取或设置一个值,该值指示单击某项是否选择其所有子项。

GridLines

获取或设置一个值,该值指示:在包含控件中项及其子项的行和列之间是否显示网格线。

GroupImageList

当前设置GroupIcon映像列表。

Groups

获取分配给控件的ListViewGroup对象的集合。

Items

获取包含控件中所有项的集合。

LabelEdit

获取或设置一个值,该值指示用户是否可以编辑控件中项的标签。

LabelWrap

获取或设置一个值,该值指示当项作为图标在控件中显示时,项标签是否换行。

SelectedItems

获取在控件中选定的项。

ShowGroups

获取或设置一个值,该值指示是否以分组方式显示项。

ShowItemToolTips

获取或设置一个值,该值指示是否为ListViewItem中包含的ListView对象显示工具提示。

SmallImageList

获取或设置ImageList,当项在控件中显示为小图标时使用。

Sorting

获取或设置控件中项的排序顺序。

StateImageList

获取或设置与控件中应用程序定义的状态相关的ImageList。

SmallImageList

获取或设置ImageList,当项在控件中显示为小图标时使用。

Sorting

获取或设置控件中项的排序顺序。

StateImageList

获取或设置与控件中应用程序定义的状态相关的ImageList。

LargeIcon模式在项文本旁边显示大图标;如果控件足够大,项将出现在多列中。

SmallIcon模式是相同的,只是它显示的是小图标。

List模式显示小图标,但始终位于单列中。

Details模式在多列中显示项。

常用Detials设置

=;//设置视图

添加列

//添加列("设备号",120,);("设备名称",150,);("当前状态",150,);("运行时长",200,);

添加行

//添加行varitem=newListViewItem();="A0001";//设备号("S7-1200");//设备名称("RUN");//当前状态("500");//运行时长//在批量载入时,尽量使用BeginUpdate,Update,减少刷新();(item);[].EnsureVisible();//滚动到最后();

给Detail添加图标

ImageList控件(存储图像控件)用于存储图像资源,然后在控件上显示出来,这样就简化了对图像的管理。ImageList控件的主要属性是Images,它包含关联控件将要使用的图片。每个单独的图像可通过其索引值或其键值来访问。

=simgs;//给listview绑定小图标列表=0;//指定对应的图标,用索引

给列表增加勾选框

=true;=true;//整行选中//添加行();for(inti=0;i100;i++){varitem=newListViewItem();="A000"+();//设备号("S7-1200");//设备名称("RUN");//当前状态(newRandom().Next(0,1000).ToString());//运行时长=0;//指定对应的图标,用索引(item);}();

privatevoidbtnGetSelected_Click(objectser,EventArgse){StringBuildersb=newStringBuilder();for(inti=0;;i++){if([i].Checked){([i].Text);}}(());}StringBuildersb=newStringBuilder();foreach(){();}(());

列头排序

publicclassListViewItemComparer:IComparer{///summary///指定按照哪个列排序////summaryprivateintColumnToSort;///summary///指定排序的方式////;///summary///声明CaseInsensitiveComparer类对象////;///summary///构造函数////summarypublicListViewItemComparer(){//默认按第一列排序ColumnToSort=0;//排序方式为不排序OrderOfSort=;//初始化CaseInsensitiveComparer类对象ObjectCompare=();}///summary///重写IComparer接口.////summary///paramname="x"要比较的第一个对象/param///paramname="y"要比较的第二个对象/param///returns比较的结果.如果相等返回0,如果x大于y返回1,如果x小于y返回-1/returnspublicintCompare(objectx,objecty){intcompareResult;,listviewY;//将比较对象转换为ListViewItem对象listviewX=()x;listviewY=()y;stringxText=[ColumnToSort].Text;stringyText=[ColumnToSort].Text;intxInt,yInt;if((xText,outxInt)(yText,outyInt))//是否全为数字{//比较数字compareResult=CompareInt(xInt,yInt);}else{//比较对象compareResult=(xText,yText);}//根据上面的比较结果返回正确的比较结果if(OrderOfSort==){//因为是正序排序,所以直接返回结果returncompareResult;}elseif(OrderOfSort==){//如果是反序排序,所以要取负值再返回return(-compareResult);}else{//如果相等返回0return0;}}///summary///比较两个数字的大小////summary///paramname="ipx"要比较的第一个对象/param///paramname="ipy"要比较的第二个对象/param///returns比较的结果.如果相等返回0,如果x大于y返回1,如果x小于y返回-1/returnsprivateintCompareInt(intx,inty){if(xy){return1;}elseif(xy){return-1;}else{return0;}}///summary///summary///获取或设置按照哪一列排序.////summarypublicintSortColumn{set{ColumnToSort=value;}get{returnColumnToSort;}}///summary///获取或设置排序方式.////{set{OrderOfSort=value;}get{returnOrderOfSort;}}}
privatevoidlstDetail_ColumnClick(objectser,ColumnClickEventArgse){if(==){if(==){=;}else{=;}}else{=;=;}();}
ListViewItemComparercomparer=newListViewItemComparer();publicFrmMain(){InitializeComponent();=comparer;}

免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系