C#winform中ListView及ContextMenuStrip的使用

1.新建一个Windows窗体应用程序

2.添加文件夹及图片资源

文件夹图片(folder.png),文件图片(file.png)

3.在设计模式下添加控件

即:1个ListView(lvwData)、2个ImageList(imgLarge,imgSmall),1个ContextMenuStrip(cmsStyle),如下所示:

4.设置各控件详细属性

2个ImageList(imgLarge,imgSmall)添加Images、设置ImageSize(imgLarge--32*32, imgSmall--16*16),如下:

  

ContextMenuStrip(cmsStyle)添加Items,如下:

ListView(lvwData)要添加ItemsColumns,绑定ContextMenuStrip(cmsStyle)、LargeImageListSmallImageList

界面设计完成后,锁定所有控件,这是个好习惯~~

 5.为ContextMenuStrip(cmsStyle)的每个子项添加事件处理逻辑

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Windows.Forms;
  9
 10 namespace Controls
 11 {
 12     public partial class MainForm : Form
 13     {
 14         /// <summary>
 15         /// 默认构造函数
 16         /// </summary>
 17         public MainForm()
 18         {
 19             InitializeComponent();
 20
 21             this.大图标ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
 22             this.详细信息ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
 23             this.平铺ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
 24             this.小图标ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
 25             this.列表ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
 26         }
 27
 28         #region 鼠标右键勾选事件处理
 29         /// <summary>
 30         /// 设定右键菜单勾选项,设置ListView列表显示样式
 31         /// </summary>
 32         /// <param name="sender"></param>
 33         /// <param name="e"></param>
 34         private void ToolStripMenuItem_Click(object sender, EventArgs e)
 35         {
 36             ToolStripMenuItem tsMenumItem = sender as ToolStripMenuItem;
 37             if (tsMenumItem.Checked)
 38             {
 39                 return;//已经选中则返回
 40             }
 41             else
 42             {
 43                 //清除勾选的右键菜单项
 44                 ClearCheckState(cmsStyle);
 45                 //勾选鼠标选中的右键菜单项
 46                 tsMenumItem.Checked = true;
 47             }
 48             //设置ListView列表显示样式
 49             SetDisplayStyle(tsMenumItem.Text);
 50         }
 51
 52         /// <summary>
 53         /// 清除勾选的右键菜单项
 54         /// </summary>
 55         /// <param name="cms">右键菜单</param>
 56         private void ClearCheckState(ContextMenuStrip cms)
 57         {
 58             ToolStripMenuItem tsMenumItemTemp;
 59             for (int i = 0; i < cms.Items.Count; i++)
 60             {
 61                 if (!(cms.Items[i] is ToolStripMenuItem))
 62                 {
 63                     continue;
 64                 }
 65                 tsMenumItemTemp = cms.Items[i] as ToolStripMenuItem;
 66                 if (tsMenumItemTemp.Checked)
 67                 {
 68                     tsMenumItemTemp.Checked = false;
 69                 }
 70             }
 71         }
 72
 73         /// <summary>
 74         /// 设置ListView列表显示样式
 75         /// </summary>
 76         /// <param name="name"></param>
 77         private void SetDisplayStyle(string name)
 78         {
 79             foreach (ListViewItem lvi in listData.Items)
 80             {
 81                 if (name == "详细信息")
 82                 {
 83                     lvi.ImageIndex = 1;
 84                 }
 85                 else
 86                 {
 87                     lvi.ImageIndex = 0;
 88                 }
 89             }
 90             switch (name)
 91             {
 92                 case "大图标":
 93                     listData.View = View.LargeIcon;
 94                     break;
 95                 case "详细信息":
 96                     listData.View = View.Details;
 97                     break;
 98                 case "小图标":
 99                     listData.View = View.SmallIcon;
100                     break;
101                 case "列表":
102                     listData.View = View.List;
103                     break;
104                 case "平铺":
105                     listData.View = View.Tile;
106                     break;
107             }
108         }
109         #endregion
110     }
111 }

6.运行效果如下所示:

时间: 2024-10-04 21:10:50

C#winform中ListView及ContextMenuStrip的使用的相关文章

C#winform中ListView的使用

使用ListView模仿Windows系统的资源管理器界面,实现文件(夹)的浏览.重命名.删除及查询等功能,主要功能界面展示如下: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System

【2017-04--28】Winform中ListView控件

ListView控件是一个winform自带的表格型的应用数据展示控件 1.先设置列,设置视图属性选择Details. 添加列,修改列名. 2.编辑项(添加行数据) 添加一个ListViewItem对象,该对象的Text对应着是第一列的数据, 在该对象的SubItems属性的集合中设置该行数据后面几列的值. 3.ListView属性 - Columns 列的集合 - Items 行数据的集合 - FullRowSelect  满行选中 - MultiSelect   是否允许选择多项 - Hid

C# winform中listview排序

本文解决方案是采用下面链接中的解决方案.十分感谢这篇文章的作者bright:http://blog.163.com/[email protected]/blog/static/1312896522010614103538287/ 看到网上的许多解决方案(其实就是一种,只不过被转载和粘贴,所以没什么用.同时那么多的代码居然屌用没有(原谅我说脏话了)(那种方法的解决方案是这样的https://support.microsoft.com/en-us/kb/319401).最后终于在一篇网易博客上找到了

Winform中ListView鼠标移动使用toolTip显示信息

今天在做一个酒店管理系统的时候用到了ListView,突然想到是否能够当鼠标移动到某一项的时候给出具体房间的信息呢! 首先设置Listview的MouseMove事件 1.获取当前坐标的项 ListViewItem lvi = this.listView.GetItemAt(e.X, e.Y); 2.判断是否有选中的项,如果有即显示对应的信息 if(lvi != null) { toolTip.show("Test",listView,new Point(e.X,e.Y),1000);

WinForm中ListView的使用

每一行是一个ListViewItem对象,每一项是一个ListViewSubItem对象 样式 整行选择:this.lvDataSourceSearchHistory.FullRowSelect = true; 文本是否可编辑:this.lvDataSourceSearchHistory.LabelEdit = false; 隐藏列头:this.lvDataSourceSearchHistory.HeaderStyle = ColumnHeaderStyle.None; 边框样式:this.lv

20150226—C# winform中的ListView解析

ListView在WinForm中多用于表的构建,可以直观的显示表的信息,其格式如同SQL的表 这是他的位置,在公共控件中: Listview的几个重要属性:Columms(集合).Groups(集合).Items(集合).View(视图).以及Items中的SubItems(集合) 其中View共有5种样式,常用选项为Details(详细资料) 下图划分了ListView中Details样式下,各行各列的集合名. Columns集合:需要在其中编辑列名,第一行(列名) Items集合,第一列的

20141226—C# winform中的ListView解析

ListView在WinForm中多用于表的构建,可以直观的显示表的信息,其格式如同SQL的表 这是他的位置,在公共控件中: Listview的几个重要属性:Columms(集合).Groups(集合).Items(集合).View(视图).以及Items中的SubItems(集合) 其中View共有5种样式,常用选项为Details(详细资料) 下图划分了ListView中Details样式下,各行各列的集合名. Columns集合:需要在其中编辑列名,第一行(列名) Items集合,第一列的

c#winform中如何修改ListView控件每个单元格的颜色

ListView在View属性为Details的时候它呈现的方式和DataGirdView差不多,它的每一行都是一个ListViewItem,然而每个ListViewItem都有一个BackColor的属性,但是设置了这个属性却没有任何作用.因为是ListView的每一行的样式都继承的父控件的样式所以无法改变. 解决方案: ListViewItem item; item = new ListViewItem(new string[] { "NAME","" });

ListView在WinForm中多用于表的构建

ListView在WinForm中多用于表的构建,可以直观的显示表的信息,其格式如同SQL的表 这是他的位置,在公共控件中: Listview的几个重要属性:Columms(集合).Groups(集合).Items(集合).View(视图).以及Items中的SubItems(集合) 其中View共有5种样式,常用选项为Details(详细资料) 下图划分了ListView中Details样式下,各行各列的集合名. Columns集合:需要在其中编辑列名,第一行(列名) Items集合,第一列的