欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#获取鼠标在listview右键点击单元格的内容方法

程序员文章站 2022-04-21 08:24:51
当我们右键点击listview控件时,可以得到选择的项的各个文本内容。 现在我们要求只获取右键点击时的单元格的文本内容。 方法如下: 1、定义全局的鼠标状态 poi...

当我们右键点击listview控件时,可以得到选择的项的各个文本内容。

现在我们要求只获取右键点击时的单元格的文本内容。

方法如下:

1、定义全局的鼠标状态

point m_mbrpt;//鼠标右键点击时point

2、处理鼠标按下时在listview的消息

private void listview1_mousedown(object sender, mouseeventargs e)
    {
      //
      if (e.button==mousebuttons.right)
      {
        // 得到屏幕鼠标的坐标,转换为列表控件的坐标标
        m_mbrpt = listview1.pointtoclient(control.mouseposition);
      }

    }

3、右键菜单--复制项的消息

private void copyitem_click(object sender, eventargs e)
    {
      //复制指定表格单元格的内容
      if (listview1.selecteditems.count <= 0)
      {
        messagebox.show("没有选中交易信息!", "提示", messageboxbuttons.ok, messageboxicon.information);
        return;
      }

      // 得到屏幕鼠标的坐标,转换为列表控件的坐标标(在鼠标按下时就去处理并保存)
      //point pt = listview1.pointtoclient(m_mbrpt);

      listviewitem lstrow = listview1.getitemat(m_mbrpt.x, m_mbrpt.y);
      system.windows.forms.listviewitem.listviewsubitem lstcol = lstrow.getsubitemat(m_mbrpt.x, m_mbrpt.y);
      string strtext = lstcol.text;
      //设置到粘贴板
      setclipboardtext(strtext);

    }

4、设置粘贴板内容

 public void setclipboardtext(string strtext)
    {
      try
      {
        clipboard.setdataobject(strtext);
      }
      catch (system.exception ex)
      {
        messagebox.show(ex.message, "提示", messageboxbuttons.ok, messageboxicon.error);      
      }
      
    }

以上这篇c#获取鼠标在listview右键点击单元格的内容方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。