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

首先,要获取鼠标在listview右键点击单元格的内容,需要以下几个步骤:

  1. 给listview绑定MouseClick事件
  2. 判断是否是鼠标右键点击
  3. 判断是否是点击了单元格
  4. 获取单击的行和列信息
  5. 获取单元格内容

下面是具体的代码和示例:

  1. 给listview绑定MouseClick事件
listView1.MouseClick += listView1_MouseClick;
  1. 判断是否是鼠标右键点击
private void listView1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        //右键点击了listview
    }
}
  1. 判断是否是点击了单元格
private void listView1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        //右键点击了listview
        ListViewItem item = listView1.GetItemAt(e.X, e.Y);
        if (item == null)
        {
            //没有点击到单元格
            return;
        }
        ListViewItem.ListViewSubItem subItem = item.GetSubItemAt(e.X, e.Y);
        if (subItem == null)
        {
            //没有点击到单元格
            return;
        }
        //可以在这里获取到点击的行和列信息
        int rowIndex = item.Index;
        int colIndex = item.SubItems.IndexOf(subItem);
    }
}
  1. 获取单击的行和列信息
private void listView1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        //右键点击了listview
        ListViewItem item = listView1.GetItemAt(e.X, e.Y);
        if (item == null)
        {
            //没有点击到单元格
            return;
        }
        ListViewItem.ListViewSubItem subItem = item.GetSubItemAt(e.X, e.Y);
        if (subItem == null)
        {
            //没有点击到单元格
            return;
        }
        //可以在这里获取到点击的行和列信息
        int rowIndex = item.Index;
        int colIndex = item.SubItems.IndexOf(subItem);
    }
}
  1. 获取单元格内容
private void listView1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        //右键点击了listview
        ListViewItem item = listView1.GetItemAt(e.X, e.Y);
        if (item == null)
        {
            //没有点击到单元格
            return;
        }
        ListViewItem.ListViewSubItem subItem = item.GetSubItemAt(e.X, e.Y);
        if (subItem == null)
        {
            //没有点击到单元格
            return;
        }
        //可以在这里获取到点击的行和列信息
        int rowIndex = item.Index;
        int colIndex = item.SubItems.IndexOf(subItem);
        //可以在这里获取到单元格的内容
        string content = subItem.Text;
    }
}

下面是完整的示例代码:

private void listView1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        //右键点击了listview
        ListViewItem item = listView1.GetItemAt(e.X, e.Y);
        if (item == null)
        {
            //没有点击到单元格
            return;
        }
        ListViewItem.ListViewSubItem subItem = item.GetSubItemAt(e.X, e.Y);
        if (subItem == null)
        {
            //没有点击到单元格
            return;
        }
        //可以在这里获取到点击的行和列信息
        int rowIndex = item.Index;
        int colIndex = item.SubItems.IndexOf(subItem);
        //可以在这里获取到单元格的内容
        string content = subItem.Text;
        MessageBox.Show("你右键点击了第" + rowIndex + "行,第" + colIndex + "列,内容为:" + content);
    }
}

通过以上步骤,我们可以获取鼠标在listview右键点击单元格的内容。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#获取鼠标在listview右键点击单元格的内容方法 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • C#正则表达式(Regex类)用法实例总结

    针对“C#正则表达式(Regex类)用法实例总结”,我整理了以下的完整攻略: 1. 正则表达式(Regex)的概念 正则表达式,也称为 regex(常量),指的是一种编写模式的字符序列,这个模式用于匹配一个或多个文本字符串。 Regex 类是 .NET Framework 提供的正则表达式处理类,可以通过该类来实现在一个字符串中搜索、替换和验证操作的功能。 …

    C# 2023年6月7日
    00
  • AspNetCore 成长杂记(一):JWT授权鉴权之生成JWT(其一)

    引子 最近不知怎么的,自从学了WebAPI(为什么是这个,而不是MVC,还不是因为MVC的Razor语法比较难学,生态不如现有的Vue等框架,webapi很好的结合了前端生态)以后,使用别人的组件一帆风顺,但是不知其意,突然很想自己实现一个基于的JWT认证服务,来好好了解一下这个内容。 起步 自从Session-Cookie方案逐渐用的越来越少,JWT的使用…

    C# 2023年4月19日
    00
  • C#将DataTable转换成list的方法

    将DataTable转换成List是C#开发中常见的需求,下面是将DataTable转换成List的完整攻略。 步骤1:创建实体类 创建一个实体类作为转换后的对象类型。实体类中的属性需要与DataTable中的列对应。 public class Person { public int Id { get; set; } public string Name {…

    C# 2023年6月1日
    00
  • C#执行外部命令的方法

    执行外部命令是C#语言中常用的一种操作,可以通过Process类实现。下面是关于C#执行外部命令的完整攻略。 1. 创建Process对象 Process是C#语言中提供的一个用于执行外部程序的类。创建一个Process对象需要先引用System.Diagnostics命名空间,然后使用Process类的构造函数创建对象。 using System.Diag…

    C# 2023年6月3日
    00
  • asp.net(c#)不可访问,因为它受保护级别限制

    当在 ASP.NET(C#)应用程序中使用类成员、方法、或属性时,有时候会出现“不可访问,因为它受保护级别限制”的异常。这是因为在 C# 中每个类成员、方法、或属性都有一个访问修饰符,它用于限制其他代码中对它的访问权限。 以下是几种可能的修饰符: public: 所有代码都可以访问它 private: 只有类内部的代码能够访问它 protected: 只有类…

    C# 2023年5月15日
    00
  • 什么是JWT超详细讲解

    以下是关于“什么是JWT超详细讲解”的完整攻略: 1. 什么是JWT? JWT(JSON Web Token)是一种用于身份验证开放标准(RFC 7519),它定义了一种紧凑且包含的方式,用于在各方之间安全地传输信息。JWT通常用于Web应用程序中,以验证用户的身份并提供访问控制。 2. JWT的结构 JWT由三部分组成,它们用点号(.)分隔开来: head…

    C# 2023年5月12日
    00
  • 详解C#中三个关键字params,Ref,out

    介绍params、ref、out这三个关键字的用法及不同之处是C#入门必备的知识。下面我们分别介绍一下这三个关键字的用法以及示例说明。 params params关键字用于表示方法传入参数的个数可能是可变的,具体用法是将类型后加上“params”关键字,如下: public void Add(params int[] numbers) { int sum =…

    C# 2023年5月31日
    00
  • C#使用windows服务发送邮件

    下面是详细讲解C#使用Windows服务发送邮件的完整攻略。 1. 什么是Windows服务发送邮件 Windows服务是在后台运行的应用程序,它没有界面和交互,但是可以在指定的时间执行预定义的任务。Windows服务发送邮件是指利用Windows服务应用程序实现设置好相关参数后,程序将会在固定的时间自动发送邮件。 2. 基本步骤 Windows服务发送邮件…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部