zoukankan      html  css  js  c++  java
  • 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.运行效果如下所示:

  • 相关阅读:
    RF操作execl
    fiddler 设置代理以后不能访问网络的解决办法
    Eclipse没有Web插件和JavaEE插件咋整
    mysql 分页查询的标准写法
    java读写操作
    java 链接mysql
    关于博客
    响应式排版中的基础知识
    前端性能优化最佳实践
    HTTP必知必会
  • 原文地址:https://www.cnblogs.com/makesense/p/4079835.html
Copyright © 2011-2022 走看看