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)的每个子项添加事件处理逻辑

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace Controls
{
public partial class MainForm : Form
{
/// <summary>
/// 默认构造函数
/// </summary>
public MainForm()
{
InitializeComponent(); this.大图标ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
this.详细信息ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
this.平铺ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
this.小图标ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
this.列表ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
} #region 鼠标右键勾选事件处理
/// <summary>
/// 设定右键菜单勾选项,设置ListView列表显示样式
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem tsMenumItem = sender as ToolStripMenuItem;
if (tsMenumItem.Checked)
{
return;//已经选中则返回
}
else
{
//清除勾选的右键菜单项
ClearCheckState(cmsStyle);
//勾选鼠标选中的右键菜单项
tsMenumItem.Checked = true;
}
//设置ListView列表显示样式
SetDisplayStyle(tsMenumItem.Text);
} /// <summary>
/// 清除勾选的右键菜单项
/// </summary>
/// <param name="cms">右键菜单</param>
private void ClearCheckState(ContextMenuStrip cms)
{
ToolStripMenuItem tsMenumItemTemp;
for (int i = ; i < cms.Items.Count; i++)
{
if (!(cms.Items[i] is ToolStripMenuItem))
{
continue;
}
tsMenumItemTemp = cms.Items[i] as ToolStripMenuItem;
if (tsMenumItemTemp.Checked)
{
tsMenumItemTemp.Checked = false;
}
}
} /// <summary>
/// 设置ListView列表显示样式
/// </summary>
/// <param name="name"></param>
private void SetDisplayStyle(string name)
{
foreach (ListViewItem lvi in listData.Items)
{
if (name == "详细信息")
{
lvi.ImageIndex = ;
}
else
{
lvi.ImageIndex = ;
}
}
switch (name)
{
case "大图标":
listData.View = View.LargeIcon;
break;
case "详细信息":
listData.View = View.Details;
break;
case "小图标":
listData.View = View.SmallIcon;
break;
case "列表":
listData.View = View.List;
break;
case "平铺":
listData.View = View.Tile;
break;
}
}
#endregion
}
}

6.运行效果如下所示:

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

  1. C#winform中ListView的使用

    使用ListView模仿Windows系统的资源管理器界面,实现文件(夹)的浏览.重命名.删除及查询等功能,主要功能界面展示如下: 1.MainForm.cs及MainForm.Designer.cs ...

  2. Winform中怎样设置ContextMenuStrip右键菜单的选项ToolStripMenuItem添加照片

    场景 怎样在Winform程序中添加鼠标右键时使子选项显示图片. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程 ...

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

    ListView 1.先设置列,设置视图属性选择Details. 添加列,修改列名. 2.编辑项(添加行数据) 添加一个ListViewItem对象,该对象的Text对应着是第一列的数据, 在该对象的 ...

  4. C# winform中listview排序

    本文解决方案是采用下面链接中的解决方案.十分感谢这篇文章的作者bright:http://blog.163.com/shensc@126/blog/static/1312896522010614103 ...

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

    今天在做一个酒店管理系统的时候用到了ListView,突然想到是否能够当鼠标移动到某一项的时候给出具体房间的信息呢! 首先设置Listview的MouseMove事件 1.获取当前坐标的项 ListV ...

  6. C# winform中ListView用法

    this.listView1.GridLines = true; //显示表格线 this.listView1.View = View.Details;//显示表格细节 this.listView1. ...

  7. winform中listview imagelist问题

    参考:http://www.it165.net/pro/html/201410/23603.html 关于imagelist失真问题: 1.颜色 将ColorDepth属性设置成Depth32Bit ...

  8. WinForm中ListView的使用

    每一行是一个ListViewItem对象,每一项是一个ListViewSubItem对象 样式 整行选择:this.lvDataSourceSearchHistory.FullRowSelect = ...

  9. 20150226—C# winform中的ListView解析

    ListView在WinForm中多用于表的构建,可以直观的显示表的信息,其格式如同SQL的表 这是他的位置,在公共控件中: Listview的几个重要属性:Columms(集合).Groups(集合 ...

随机推荐

  1. centos7下yum安装mysql

    CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载   # wget http://dev.mysql.com/get/mysql-communit ...

  2. Note from head first

    1 Slow down. The more you understand, the less you have to memorize. 2 Do the exercises. Write your ...

  3. Winform 基础知识 之文件夹操作

    using System.IO; /// <summary> /// 删除文件夹下所有文件 /// </summary> /// <param name="di ...

  4. 如何在Eclipse中查看Android源码或者第三方组件包源码

    文章出处:http://blog.csdn.net/cjjky/article/details/6535426 在学习过程中如果经常阅读源码,理解程度会比较深,学习效率也会比较高,那么如何方便快捷的阅 ...

  5. 【codevs】1082 线段树练习 3 <区间修改+区间和>

    题目连接   http://codevs.cn/problem/1082/ Description 给你N个数,有两种操作: 1:给区间[a,b]的所有数增加X 2:询问区间[a,b]的数的和. In ...

  6. win7下loadrunner创建mysql数据库参数化问题解决

    问题现象: 安装mysql数据源驱动后,lr创建mysql驱动程序列表没有安装的驱动程序: 安装完mysql ODBC数据源后 2.在控制面板-数据源(ODBC) 3.创建mysql数据源: 4.从l ...

  7. linux在工作中用的比较多的几个命令

    1.chmod +X qmf.txt;给qmf.txt文件添加执行的权限 2.find命令: find ./ -name "*.log" exec  rm -rf { } \;   ...

  8. 【BZOJ】3781: 小B的询问(莫队算法)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3781 还能不能再裸点.. #include <cstdio> #include < ...

  9. 【wikioi】2216 行星序列(线段树)

    http://wikioi.com/problem/2216/ 这题太让我感动了QAQ,让我找到了我一直以来写线段树的错误!!!! 就是,pushdown一定要放在最前面!要不然顺序会错.也就是说,当 ...

  10. More about Tair (NoSql)

    一.前言 关于Tair的相关介绍请参照wiki(http://code.taobao.org/p/tair/wiki/index/)或者之前的博文,不再重复描述.区别于其它主流NoSql数据库,Tai ...