这段代码适用于单个选择的项目: 在顶部:
ContextMenuStrip menuStrip;
然后在构造函数中:
menuStrip = new ContextMenuStrip();
menuStrip.ItemClicked += menuStrip_ItemClicked;
menuStrip.Items.Add("Cut");
menuStrip.Items.Add("Copy");
menuStrip.Items.Add("Paste");
menuStrip
项目单击事件:ListViewItem item;
private void menuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text == "Copy")
{
Clipboard.SetText(item.SubItems[1].Text);
}
}
然后是
ListView
的鼠标点击事件:private void lstDisplayHardware_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
item = lstDisplayHardware.GetItemAt(e.X, e.Y);
menuStrip.Show(lstDisplayHardware, e.Location);
}
}
这段代码适用于单个选定项。
例如,我在ListView
中点击一个项目,右键单击该项目并选择Copy
:所选项目的子项将被复制到剪贴板。
但现在我想为多个选定项执行相同的操作。
因此,如果我使用Ctrl +左键单击并选择4个项目,并从上下文菜单调用Copy
命令,则我希望将所有4个选定项目的子项文本复制到剪贴板中。
例如,我有以下项目:
danny hello world
daniel hi all
dan rain today
daniels sunny day
我选择以下项目:
danny
daniel
dan
daniels
然后右键单击并单击复制。当我从剪贴板中随意粘贴时,我希望它显示:
hello world
hi all
rain today
sunny day
所有选定项目的子项按照相同的顺序和格式。