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再执行操作
}
我不知道这样有没有问题,有人指点下吗?
{
if (e.Button==MouseButtons.Right)
{
//往右键菜单中添加Item
cmsListView.Items.Clear();
cmsListView.Items.Add("复制");
cmsListView.Items.Add("剪切");
cmsListView.Items.Add("删除");
cmsListView.Items.Add("粘贴");
//根据选定的Item判断操作
//这里判断鼠标单击的是右键菜单的哪个Item再执行操作
}
我不知道这样有没有问题,有人指点下吗?
然后是各Item 的 MenuItem_Click 里处理。
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;
}
}
}
}
动态进行绑定点击事件