摘要
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;}
免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系