C#中加强ListView控件的功能

转载 2007年10月12日 09:23:00
C#中加强ListView控件的功能

首先是实现ListView控件的自定义排序,订阅ListView控件的ColumnClick事件

  private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
  {
   if (this.listView1.Columns[e.Column].Tag == null)
    this.listView1.Columns[e.Column].Tag = true;
    bool tabK = (bool)this.listView1.Columns[e.Column].Tag;
   if (tabK)
    this.listView1.Columns[e.Column].Tag = false;
   else
    this.listView1.Columns[e.Column].Tag = true;
    this.listView1.ListViewItemSorter = new ListViewSort(e.Column, this.listView1.Columns[e.Column].Tag); 
    //指定排序器并传送列索引与升序降序关键字
    this.listView1.Sort();//对列表进行自定义排序
  }

 

    排序类的定义:

  ///
  ///自定义ListView控件排序函数
  ///

  class ListViewSort : IComparer
  {
   private int col;
   private bool descK;

   public ListViewSort()
   {
    col = 0;
   }
   public ListViewSort(int column, object Desc)
   {
    descK = (bool)Desc;
    col = column; //当前列,0,1,2...,参数由ListView控件的ColumnClick事件传递
   }
   public int Compare(object x, object y)
   {
    int tempInt = String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
    if (descK) return -tempInt;
    else return tempInt;
   }
  }

上面的ListView控件的自定义排列,即单击ListView控件的标题时进行排序

    下面将实现ListView控件的最后一列的去除,即自动调整合适的大小

    首先写一个调整ListView控件列宽的函数

  ///
  ///自动调整listView控件最后一列的列宽
  ///
  ///
  ///

  private void 调整LV列宽()
  {
   listView1.ColumnWidthChanged -= new ColumnWidthChangedEventHandler(listView1_ColumnWidthChanged);
   备注.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
   listView1.ColumnWidthChanged += new ColumnWidthChangedEventHandler(listView1_ColumnWidthChanged);
  }

    上面的备注列是listview控件的最后一列的名称,而listview控件的实例名为listView1

    然后订阅ListView控件的ColumnWidthChanged事件,即列宽改变时自动调整列宽

  ///
  /// listview列宽改变事件函数
  ///
  ///
  ///

  void listView1_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
  {
   调整LV列宽();
  }

 

    再订阅ListView控件的Size_Change事件,即窗口大小被改变时调整列宽

  void listView1_SizeChanged(object sender, EventArgs e)
  {
   调整LV列宽();
  }

    最后在窗体的Shown事件中调整ListView控件的列宽,即第一次显示的时候马上调整列宽

  private void 商品管理_Shown(object sender, EventArgs e)
  {
   调整LV列宽();
  }
 

C# DataGridView控件与ListView控件的对比学习(一):DataGridView控件学习

一、DataGridView控件介绍:     1、定义:         DataGridView控件是一种方便用户浏览和编辑来自不同类型数据源的数据的一种表格式控件。从这个定义中,我们可以获取...
  • u013180863
  • u013180863
  • 2016年12月22日 15:34
  • 1511

【C#】对于ListView控件使用的个人心得

前言:最近看到许多网友对listView控件的使用方法有很多疑问,今天就用实例来讲解一下对listView控件的使用心得,希望这些简单实用的方法能帮助大家快速理解。   1、首先介绍一下我的winf...
  • u011214284
  • u011214284
  • 2015年04月04日 16:12
  • 6976

C# 系统应用之ListView控件 (二).加载选中节点文件夹下文件信息

在项目中的前面一篇文章"C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标"中我讲述了如何使用TreeView控件树状实现显示"我的电脑"所有磁盘路径下的文件夹,并加载图标如...
  • Eastmount
  • Eastmount
  • 2014年03月14日 18:20
  • 5236

C# DataGridView控件与ListView控件的对比学习(二):ListView控件学习

一、定义:     表示Windows列表视图控件,一般用来呈现数据,是一种轻量级的呈现数据的方法。 二、重要的属性:     1、第一个非常重要的属性是View:获取或设置项在控件中的显示方式...
  • u013180863
  • u013180863
  • 2016年12月22日 15:39
  • 917

自定义一个带删除按钮的ListView

OK,回顾一下ListView的内容。 要把数据通过ListView显示到屏幕,那么就要有三个东西,ListView&Adapter&data。先把全部代码放给大家看吧。 首先是布局文件,分别为A...
  • jinghongtianxia
  • jinghongtianxia
  • 2016年08月12日 23:17
  • 910

C#学习笔记(九)-使用ListView控件展示数据

1.图像列表控件 1.1 ImageList控件的属性 图像列表控件是含有图像对象的集合,可以通过索引或者关键字引用该集合中的每个对象.ImageList控件不能独立使用,只用来为Window...
  • cc7829290
  • cc7829290
  • 2013年04月07日 08:59
  • 3087

C#如何获取其他程序ListView控件中的内容 含源码

需求:获取其他程序中的ListView控件的文本内容 原理:进程之间是相互隔离的,数据是不能共享的(有些特例)    LVM_GETTITEMTEXT:将一个数据缓冲区提供给listview32控件,...
  • liehuo123
  • liehuo123
  • 2014年03月25日 10:53
  • 6509

C# ListView控件制作表格:添加行,删除行,右键删除行

添加行、删除行、插入行、删除多行、右键删除行、修改单元格内容
  • wuhuijun165
  • wuhuijun165
  • 2016年06月08日 15:20
  • 1203

ListView支持分组的折叠和展开

之前在项目中用到了ListView这个Winformkongji
  • zy332719794
  • zy332719794
  • 2014年08月27日 11:16
  • 3866

关于Listview控件中使用Key获取Subitems值

首先区分下DataGridView和ListView: y
  • jzt_designer
  • jzt_designer
  • 2014年06月11日 15:10
  • 1575
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#中加强ListView控件的功能
举报原因:
原因补充:

(最多只允许输入30个字)