精华内容
下载资源
问答
  • c#listview
    2021-03-17 09:03:12

    本文系转载,原文链接http://www.liangshunet.com/ca/201309/586362553.htm

    **

    C# ListView控件显示表格(自适应宽度),添加 Checkbox,删除选择项,选中颜色和鼠标滑过背景变色

    **
    亮术网 2020-03-07 本网原创

    DataGridView控件功能十分强大,显示表格也方便,但性能就没有那么高;ListView控件功能没那么强大,显示表格也要多写代码,但性能相对高一些。开发过程中,可根据需要选用;对于显示表格来说,用 ListView控件也不难,以下是两个具体实例。

    一、C# Winform ListView 生成表格
    1、拉一个 ListView控件到 Form1 窗口中,双击 Form1 窗口打开后台代码文件。

    2、显示表格代码(固定列宽度):

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Text;
      using System.Windows.Forms;
    
    namespace ShowTable
      {
        public partial class Form1 : Form
        {
          public Form1()
          {
            InitializeComponent();
          }
    
        private void Form1_Load(object sender, EventArgs e)
          {
            ShowTableWithListview();
          }
    
     
    
        private void ShowTableWithListview()
          {
            listView1.GridLines = true;//表格是否显示网格线
            listView1.FullRowSelect = true;//是否选中整行
    
          listView1.View = View.Details;//设置显示方式
            listView1.Scrollable = true;//是否自动显示滚动条
            listView1.MultiSelect = false;//是否可以选择多行
    
          //添加表头(列)
            listView1.Columns.Add("产品名称", 160, HorizontalAlignment.Center);
            listView1.Columns.Add("产品型号", 100, HorizontalAlignment.Center);
            listView1.Columns.Add("价格", 100, HorizontalAlignment.Center);
            listView1.Columns.Add("数量", 100, HorizontalAlignment.Center);
    
          //添加表格内容
            for (int i = 0; i < 6; i++)
            {
              ListViewItem item = new ListViewItem();
              item.SubItems.Clear();
    
            item.SubItems[0].Text = "产品" + i.ToString();
              item.SubItems.Add(i.ToString());
              item.SubItems.Add((i + 7).ToString());
              item.SubItems.Add((i * i).ToString());
              listView1.Items.Add(item);
            }
          }
        }
      }
    

    显示表格效果如图1所示:

    listView显示表格
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z5TWbdMy-1615943108366)(http://www.liangshunet.com/lsfile/computer/2013/9/du4o72v4a783551.jpg#pic_center)]

    图1

    3、自适应列宽度代码如下:

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Text;
      using System.Windows.Forms;
    
    namespace ShowTable
      {
        public partial class Form1 : Form
        {
          public Form1()
          {
            InitializeComponent();
          }
    
        private void Form1_Load(object sender, EventArgs e)
          {
             ShowTableAdaptiveWidthColumn ();
          }
    
        private void ShowTableAdaptiveWidthColumn()
          {
            listView1.GridLines = true;//表格是否显示网格线
            listView1.FullRowSelect = true;//是否选中整行
    
          listView1.View = View.Details;//设置显示方式
            listView1.Scrollable = true;//是否自动显示滚动条
            listView1.MultiSelect = false;//是否可以选择多行
    
          //添加表头(列)
            listView1.Columns.Add("ProductName", "产品名称");
            listView1.Columns.Add("SN", "产品型号");
            listView1.Columns.Add("Price", "价格");
            listView1.Columns.Add("Number", "数量");
    
          //添加表格内容
            for (int i = 0; i < 3; i++)
            {
              ListViewItem item = new ListViewItem();
              item.SubItems.Clear();
    
            item.SubItems[0].Text = "产品" + i.ToString();
              item.SubItems.Add(i.ToString());
              item.SubItems.Add((i + 7).ToString());
              item.SubItems.Add((i * i).ToString());
              listView1.Items.Add(item);
            }
    
          listView1.Columns["ProductName"].Width = -1;//根据内容设置宽度
            listView1.Columns["SN"].Width = -2;//根据标题设置宽度
    
          listView1.Columns["Price"].Width = -2;
            listView1.Columns["Number"].Width = -2;
          }
        }
      }
    

    效果图如图2所示:

    listView表格自适应宽度
    在这里插入图片描述

    图2

    二、C# Winform ListView 表格功能扩展
    1、添加复选框(Winform listview checkbox)

    需要 ListView 的 CheckBoxes 和 MultiSelect 属性设置为 True。再拖一个 CheckBox 控件到 ListView 下面,打开“属性”窗口(右键 CheckBox,然后选择“属性”),把它的 Text 属性改为“全选”;选择“事件”选项卡,在 CheckedChanged 右边添加 CbAll_CheckedChanged,按回车,添加选择改变事件。

    方法一:

      private void SelectAllCheckBoxes(ListView lv, bool currVal)
      {
        for (int i = 0; i < lv.Items.Count; i++)
          lv.Items[i].Checked = currVal;
      }
    

    方法二:

      private void SelectAllCheckBoxes(ListView lv, bool currVal)
      {
        foreach (ListViewItem item in lv.Items)
          item.Checked = currVal;
      }
    

    调用:

      private void CbAll_CheckedChanged(object sender, EventArgs e)
      {
        SelectAllCheckBoxes(listView1, cbAll.Checked);
      }
    

    效果图如图3所示:

    添加复选框(Winform listview checkbox)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UaWj4fS8-1615943148422)(http://www.liangshunet.com/lsfile/computer/2020/3/yhuu1h8hp264134.gif#pic_center)]

    图3

    2、Winform listview 删除选择项

    拖一个 Label 控件到 ListView 下面“全选”右边;打开“属性”窗口(右键 listView1,选择“属性”),选择“事件”选项卡,在 MouseClick 右边添加 lblDel_MouseClick 事件,再添加如下代码:

      private void lblDel_MouseClick(object sender, MouseEventArgs e)
      {
        foreach (ListViewItem item in listView1.Items)
        {
          if (item.Checked)
             item.Remove();
        }
      }
    

    3、Winform listview 选中颜色和字体修改以突出显示

    打开“属性”窗口(右键 listView1,选择“属性”),选择“事件”选项卡,在 CheckedChanged 右边添加 listView1_ItemSelectionChanged 事件,再添加如下代码:

      private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
      {
        listView1.FullRowSelect = true;
    
      if (this.listView1.SelectedItems.Count > 0)
        {
          //清除原有前景颜色
          foreach (ListViewItem lvi in listView1.Items)
          lvi.ForeColor = Color.Black;
    
        //清除原有背景颜色和字体
          foreach (ListViewItem lvi in listView1.Items)
          {
            lvi.BackColor = Color.White;
            Font font = new Font(Control.DefaultFont, FontStyle.Regular);
            lvi.Font = font;
          }
    
        listView1.SelectedItems[0].SubItems[0].ForeColor = Color.OrangeRed;
          Font newFont = new Font(Control.DefaultFont, FontStyle.Bold); //加粗选中行字体
          listView1.SelectedItems[0].SubItems[0].Font = newFont;
    
        listView1.SelectedItems[0].BackColor = Color.FromArgb(5, 206, 249, 221);//设置选中行背景颜色
          listView1.SelectedItems[0].Selected = false;
        }
      }
    

    效果图如图4所示:

    Winform listview 选中颜色和字体修改以突出显示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k1FGwN9G-1615943164534)(http://www.liangshunet.com/lsfile/computer/2020/3/4mhidd5lp900177.gif#pic_center)]

    图4

    4、ListView 鼠标滑过背景变色

    (1)响应快的方法

    打开“属性”窗口(右键 listView1,选择“属性”),选择“事件”选项卡,在 MouseMove 右边添加 listView1_MouseMove 事件,再添加如下代码:

      private void listView1_MouseMove(object sender, MouseEventArgs e)
      {
        ListView lv = (ListView)sender;
        ListViewItem oldItem = null;
        if (lv.Tag != null)
          oldItem = (ListViewItem)lv.Tag;
    
      ListViewItem curItem = lv.GetItemAt(e.X, e.Y);//获取鼠标所在的项
        if (curItem != null)
        {
          // 还原鼠标上次所在项的背景颜色
          if (oldItem != null && oldItem != curItem)
            oldItem.BackColor = lv.BackColor;
    
        curItem.BackColor = Color.LightGreen;//设置当前项的背景颜色
          lv.Tag = curItem;
        }
        else
        {
          if (oldItem != null && oldItem.BackColor != lv.BackColor)
            oldItem.BackColor = lv.BackColor;
        }
      }
    
    效果图如图5所示:
    
    C# Winform ListView 鼠标滑过背景变色
    
    图52)响应慢的方法
    
    同样在 ItemMouseHover 右边添加 listView1_ItemMouseHover 事件,再添加如下代码:
    
    ListViewItem lastSelectedItem = null;
      private void listView1_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
      {
        if (lastSelectedItem != null)
          lastSelectedItem.BackColor = Color.White;
          
        e.Item.BackColor = Color.LightGreen;
        lastSelectedItem = e.Item;
      }
    

    5、ListView 行高设置

    设置方法请看《C# listview行高设置完整实例》一文,里面有详细介绍。

    以上代码通过 Visual Studio 2019 测试,可直接复到文件运行看效果。

    更多相关内容
  • C#ListView添加各种自定义控件,CheckBox,ComboBox等
  • C# ListView双击Item事件

    2021-01-01 14:49:22
    代码如下:private void listView右侧_MouseDoubleClick( object sender , MouseEventArgs e ) { ... 您可能感兴趣的文章:C# Winform 禁止用户调整ListView的列宽c#数据绑定之将datatabel的data添加listVi
  • 摘要:C#源码,控件类库,ListView ListView简单例子ListView的简单实例,实例展示了为ListView添加图标,可判断文件扩展名来显示图标。另外可按详细信息、大图标、列表等方式显示ListView中的内容,对显示一些列表式...
  • 实现代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks;... {
  • 下面小编就为大家带来一篇C# listview 点击列头排序的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • c#listview示例.rar

    2019-11-27 16:56:49
    c#listview示例大全c#listview示例大全c#listview示例大全c#listview示例大全c#listview示例大全c#listview示例大全c#listview示例大全c#listview示例大全c#listview示例大全c#listview示例大全c#listview示例大全c#...
  • 本文主要参照http://blog.csdn.net/eastmount/article/details/27264295博客,主要是一个C#的Winform程序,通过TreeView显示磁盘目录“我的电脑”、“我的文档”、CDEF盘树状图及图标.点击不同路径在ListView控件中将...
  • 2,WindowsFormsApplication2涉及大文件分页读取技术和listview数据基础的载入,大文件分页读取已测试834MB文件能分页读出,不会卡死 3,WindowsFormsApplication3 主要针对listview 虚拟模式快速载入大数据,已测试 ...
  • C#ListView控件显示数据库数据的源代码
  • C# ListView中添加ComboBox等控件 效果见 http://blog.csdn.net/xuegacl/article/details/49795479
  • 利用ListView控件实现图标的管理,c#实现
  • 主要介绍了C# ListView 点击表头对数据进行排序功能的实现代码,需要的朋友可以参考下
  • 摘要:C#源码,数据库应用,ListView 带复选框的C# ListView控件用法实例,C#演示如何在ListView控件中添加和使用复选框的功能,相对来说比较实用,因为复选框的使用也很广泛,本例带你走进ListView中复选框的用法实例...
  • C# ListView打印

    2022-04-12 11:53:51
    直接打印整个ListView控件
  • 摘要:C#源码,菜单窗体,ListView C#ListView列表视图添加Icon图标,这样功能更丰富些,以后还可以添加更多排列方式,像win系统那样,可以按图标、列表的方式显示。部分代码如下:  listView1.LargeImageList = ...
  • C# listview控件应用

    2018-05-15 13:35:58
    学习C#必经之路,入门级知识总结,笔记本知识概况,走一步再走一步
  • 推荐阅读:ListView 百分比进度条(delphi版) 对于已经有的组件,可以直接添加进来,添加后要先运行一下,然后会在工具箱内...//C# listview进度条显示 private Color mProgressColor = Color.Red; public Color Prog
  • c# listview 实现循环滚动显示

    热门讨论 2014-05-29 23:24:28
    c# listview 实现循环滚动显示
  • 简单的图标式C# ListView实例,使用一些小图片来修饰列表视图,这些修饰性的小图片在Image文件夹中。鼠标点选ListView中的任一项,即可显示选中值。本例演示了ListView的美化和显示、取值的过程,特别适合C#初学者...
  • C#ListView中修改数据

    2021-03-16 03:07:46
    摘要:C#源码,数据库应用,ListView C#ListView中修改数据,需要连接数据库才行,可惜没找到本例的数据库,不过你可以参考源代码,将数据表还原,其实本例是一个ListView数据库组件的使用实例,对于C#的初学者来说...
  • C# ListView添加行距 源代码 ListView添加行距 一、问题 listview控件,可以实现增大行距吗?行与行太紧了,不好看呀。 有办法可以实现吗? 我不想通过加大字体的方法,因为字体大了,行距还是近呀。 我要的是增大行...
  • 主要为大家详细介绍了C#listview如何插入图片,如何在listview中插入图片的每一个步骤为大家分享,感兴趣的朋友可以参考一下
  • 获取c# ListView CheckBox 索引值
  • C# ListView用法

    2022-06-08 00:42:10
    目录添加标题显示网格添加数据到表格中自定义其他属性结束在 Winfrom 界面中添加一个 ListView 组件,然后点击右上角的箭头,点击编辑列添加下面标题,然后点击确定此时 ListView 中还是一片空白,不能显示这些标题...

    目录

    添加标题

    显示网格

    添加数据到表格中

    自定义其他属性

    结束


    添加标题

    在 Winfrom 界面中添加一个 ListView 组件,然后点击右上角的箭头,点击编辑列

    添加下面标题,然后点击确定

    此时 ListView 中还是一片

    展开全文
  • 摘要:C#源码,控件类库,ListView,高亮显示 C#使ListView控件中的选择项高亮显示,定义一个全局变量标识,设置是否在listView1控件中显示网格线,设置listView1控件在其父容器中的停靠方式,定义listView表头信息,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,891
精华内容 6,756
关键字:

c#listview

c# 订阅
友情链接: pthread_lock.rar