[英]How to copy listview sub item text to clipboard using contextmenu copy?
private void lstDisplayHardware_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
ListViewItem item = lstDisplayHardware.GetItemAt(e.X, e.Y);
ContextMenu m = new ContextMenu();
m.MenuItems.Add(new MenuItem("Cut"));
m.MenuItems.Add(new MenuItem("Copy"));
m.MenuItems.Add(new MenuItem("Paste"));
if (item != null)
{
item.Selected = true;
m.MenuItems.Add(new MenuItem(string.Format("Do something to row {0}", item.Position.ToString())));
Clipboard.SetData(item.SubItems[1].Text, lstDisplayHardware);
}
m.Show(lstDisplayHardware, new Point(e.X, e.Y));
}
}
lstDisplayHardware is the ListView control. lstDisplayHardware是ListView控件。 When I right click, it doesn't copy the data to the clipboard. 右键单击时,它不会将数据复制到剪贴板。
What I want to do is when I click/select "Copy" it will copy the sub-item text to the clipboard. 我想做的是,当我单击/选择“复制”时,它将把子项目文本复制到剪贴板。
Right now, it doesn't copy the text to the clipboard at all. 现在,它根本不会将文本复制到剪贴板。
To do that, you need to handle a menu item click: 为此,您需要处理菜单项,单击:
MenuItem miCopy = new MenuItem();
miCopy.Click += miCopy_Click;
void miCopy_Click(object sender, EventArgs e)
{
//what you want to do
}
ContextMenu m = new ContextMenu();
m.MenuItems.Add(miCopy);
I don't think the Clipboard.SetData is what you want. 我不认为Clipboard.SetData是您想要的。
Try using Clipboard.SetText(item.SubItems[1].Text); 尝试使用Clipboard.SetText(item.SubItems [1] .Text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.