【问题标题】:How to copy listview sub item text to clipboard using contextmenu copy?如何使用上下文菜单复制将列表视图子项文本复制到剪贴板?
【发布时间】:2015-05-13 05:54:56
【问题描述】:
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 是 ListView 控件。 当我右键单击时,它不会将数据复制到剪贴板。

我想要做的是,当我单击/选择“复制”时,它会将子项文本复制到剪贴板。

现在,它根本不会将文本复制到剪贴板。

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    我不认为 Clipboard.SetData 是你想要的。

    尝试使用 Clipboard.SetText(item.SubItems[1].Text);

    【讨论】:

      【解决方案2】:

      为此,您需要处理菜单项点击:

      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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-31
        相关资源
        最近更新 更多