C#listview展⽰表格格式
  有时候我们需要展⽰表格格式的数据,⾸先想到的是⽤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<int, string> item in dicInventoryData)
{
if (item.Value.Contains(epc))
{
findFlag = true;
itemIdx = item.Key;
}
}listview控件在哪里
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:当⽤户在列表视图控件中单击列标头时发⽣。
参考:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。