博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# listview展示表格格式
阅读量:5150 次
发布时间:2019-06-13

本文共 3244 字,大约阅读时间需要 10 分钟。

  有时候我们需要展示表格格式的数据,首先想到的是用datagridview控件,比如更改datagridview某一行的数据,这样操作起来就比较麻烦,而listview属于轻量级,刷新和更改相对来说效率比较高。

首先展示最终结果:

实现步骤:

1.在设计里创建listview控件。

2.编辑列,可根据自己需求更改Name、Text、TextAlign、Width等。

3.设置View属性为 Details(细节),此时即可以显示列名

4.设置GridLines为True显示表格线,设置FullRowSelect为True单击某个单元格选中一行。

最后结果如下:

关键部分代码:

private void Form4_Load(object sender, EventArgs e)        {            string epc = "E20001234567890123456789";            string dateTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff");            string antPort = "1";            string clientIp = "10.10.10.80";            bool findFlag = false;  //默认为当前epc不存在列表中            int itemIdx = 0;    //listview索引            foreach (KeyValuePair
item in dicInventoryData) { if (item.Value.Contains(epc)) { findFlag = true; itemIdx = item.Key; } } if (findFlag) //存在,更新数据 { // 更新次数 listInventoryData.Items[itemIdx].SubItems[4].Text = Int32.Parse(listInventoryData.Items[itemIdx].SubItems[4].Text) + 1 + ""; //更新时间 listInventoryData.Items[itemIdx].SubItems[5].Text = dateTime; // 取天线信息 string strAntennaPorts = listInventoryData.Items[itemIdx].SubItems[3].Text; if (!strAntennaPorts.Contains(antPort)) { // 更新天线信息 strAntennaPorts += "," + antPort; listInventoryData.Items[itemIdx].SubItems[3].Text = strAntennaPorts; } } else //不存在,添加数据 { ListViewItem item = new ListViewItem(); //序号 item.Text = (listInventoryData.Items.Count + 1) + ""; //客户端 item.SubItems.Add(clientIp); //epc item.SubItems.Add(epc); //天线号 item.SubItems.Add(antPort); // 次数 item.SubItems.Add("1"); //时间 item.SubItems.Add(dateTime); listInventoryData.BeginUpdate(); listInventoryData.Items.Add(item); listInventoryData.EndUpdate(); // 添加到列表 dicInventoryData.Add((int)imparityCount, epc); // 标签个数加1 imparityCount++; } }

 

常用属性:

  1.HeaderStyle - “详细信息”视图中列标头的样式。

    None - 不显示列标头

    Nonclickable - 不可点击

    Clickable - 可点击

  2.HideSelection - 当控件没有焦点时,移除选定项的突出显示。

  3.MultiSelect - 允许选择多项 (True/False)。

  4.CheckBoxes - 指示复选框是否显示在项旁边。

  5.FullRowSelect - 指示当项被选中时,其所有子项是否同该项一起突出显示。

  6.GridLines - 在项和子项周围显示网格线。仅在“详细信息”视图中显示。

  7.View - 选择可以显示项的不同视图中的一种。

常用方法:

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

       2.EndUpdate:在BeginUpdate 方法挂起描述后,继续描述列表视图控件。(结束更新)

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

       4.FindItemWithText:查找以给定文本值开头的第一个 ListViewItem。

       5.FindNearestItem:按照指定的搜索方向,从给定点开始查找下一个项。提示:只有在LargeIcon或SmallIcon视图才能使用该方法。

常用事件:

       1.AfterLabelEdit:当用户编辑完项的标签时发生,需要LabelEdit属性为true。

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

       3.ColumnClick:当用户在列表视图控件中单击列标头时发生。

参考:

转载于:https://www.cnblogs.com/swjian/p/10597025.html

你可能感兴趣的文章
解除phpMyAdmin导入大型MySQL数据库文件大小限制
查看>>
(转)matlab练习程序(HOG方向梯度直方图)
查看>>
『Raid 平面最近点对』
查看>>
【ADO.NET基础-数据加密】第一篇(加密解密篇)
查看>>
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>
OO学习总结与体会
查看>>
虚拟机长时间不关造成的问题
查看>>
toString和valueOf的区别
查看>>
C#操作Excel(创建、打开、读写、保存)几种方法的总结
查看>>
校门外的树2 contest 树状数组练习 T4
查看>>
JS及JQ使用JSONP实现跨域调用必应搜索
查看>>
面试整理:Python基础
查看>>
Python核心编程——多线程threading和队列
查看>>
关于Invoke和InvokeRequired
查看>>
Program exited with code **** 相关解释
查看>>
装服务器,测试数据库,简单的maven命令
查看>>
升级Firefox8后watir-webdriver出现错误“unable to obtain stable firefox connection in 60 seconds”...
查看>>