private void listViewFile_MouseDown(object sender, MouseEventArgs e)
        {
            
            if (e.Button==MouseButtons.Right)
            {
                //往右键菜单中添加Item
                cmsListView.Items.Clear();
                cmsListView.Items.Add("复制");
                cmsListView.Items.Add("剪切");
                cmsListView.Items.Add("删除");
                cmsListView.Items.Add("粘贴");
                //根据选定的Item判断操作
                //这里判断鼠标单击的是右键菜单的哪个Item再执行操作
            }
我不知道这样有没有问题,有人指点下吗?

解决方案 »

  1.   

    MenuItem 应该Form Design的时候就准备好。
    然后是各Item 的 MenuItem_Click 里处理。
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using Microsoft.VisualBasic;namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                
            }        ContextMenuStrip cmsListView = new ContextMenuStrip();
            private void Form1_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    cmsListView.Items.Clear();
                    cmsListView.ItemClicked+=new ToolStripItemClickedEventHandler(cmsListView_ItemClicked);
                    cmsListView.Items.Add("复制");                cmsListView.Items.Add("剪切");
                    cmsListView.Items.Add("删除");
                    cmsListView.Items.Add("粘贴");
                    cmsListView.Show(MousePosition);
                }
            }        void cmsListView_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
            {
                cmsListView.ItemClicked -= new ToolStripItemClickedEventHandler(cmsListView_ItemClicked);            switch (e.ClickedItem.Text)
                {
                    case "复制":
                        MessageBox.Show(e.ClickedItem.Text);
                        break;
                    case "剪切":
                        MessageBox.Show(e.ClickedItem.Text);
                        break;
                    case "删除":
                        MessageBox.Show(e.ClickedItem.Text);
                        break;
                    case "粘贴":
                        MessageBox.Show(e.ClickedItem.Text);
                        break;                default :
                        break;
                }
            }
        }
    }
    动态进行绑定点击事件
      

  3.   

    你好,谢谢你,你的意思是在FormLoad的时候就应该加载右键菜单吗?我这样为什么不行?