zoukankan      html  css  js  c++  java
  • 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;
                    }
                }
    
                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/shadowme/p/6250070.html

    https://www.cnblogs.com/qq450867541/p/6164936.html

  • 相关阅读:
    PathInfo模式,thinkPHP模板与控制之间的关系
    thinkPHP无法显示验证码问题
    jQuery.validate 中文API手册
    MySQL 常用函数
    MySQL插入、更新与删除数据 习题
    MySQL查询语句练习题
    在windows下SphinxCoreseek的配置安装与测试
    Ubuntu上Coreseek+PHP的安装
    Ubuntu下安装CoreSeek
    Ubuntu更新命令
  • 原文地址:https://www.cnblogs.com/swjian/p/10597025.html
Copyright © 2011-2022 走看看