背景

最近收到了一个关于以前项目的维护请求,那时的楼主还是刚刚工作的小青年~~~

项目之前使用的是.net/winform。今天重新打开代码,看着之前在FrameWork2.0下面的代码, 满满的回忆!!!

需求分析

根据需求,需要在ListView控件上面响应/处理 doubleclick 时间,当用户双击某一行时,需要在整个选中的row里面根据其中一个column的值来进行不同的操作。

例如,选中第二行,需要根据用户doubleclick的location 得到 双击的是哪个 column,从而转向到不同的业务处理方法。

实现过程

1. 为ListView添加鼠标双击事件

private void PrepareListView()
{
listView4Exeptions = new System.Windows.Forms.ListView();
listView4Exeptions.GridLines = true;
listView4Exeptions.View = View.Details;
listView4Exeptions.AllowColumnReorder = true;
listView4Exeptions.FullRowSelect = true;
listView4Exeptions.Scrollable = true;
listView4Exeptions.MultiSelect = false; listView4Exeptions.Columns.Add(ConstClass._Customer_ExceptRec, , HorizontalAlignment.Left);
listView4Exeptions.Columns.Add(ConstClass._Customer_ExceptCode, , HorizontalAlignment.Left);
listView4Exeptions.Columns.Add(ConstClass._Customer_ExceptDesc, , HorizontalAlignment.Left);
listView4Exeptions.Columns.Add(ConstClass._Customer_ExceptRef, , HorizontalAlignment.Left); listView4Exeptions.Dock = System.Windows.Forms.DockStyle.Fill;
listView4Exeptions.Location = new System.Drawing.Point(, );
listView4Exeptions.Name = "List for Exceptions";
listView4Exeptions.Size = new System.Drawing.Size(, );
listView4Exeptions.TabIndex = ;
listView4Exeptions.UseCompatibleStateImageBehavior = false; listView4Exeptions.MouseDoubleClick += listView4Exeptions_MouseDoubleClick;
}

2. 在事件处理函数中,首先解析出选中的行,然后再根据获取双击的位置获取column

void listView4Exeptions_MouseDoubleClick(object sender, MouseEventArgs e)
{
ListView lv = sender as ListView;
if (lv == null)
return; ListViewHitTestInfo info = lv.HitTest(e.X, e.Y);
ListViewItem curItem = info.Item; // 获取双击时选中的row
int colIdx = info.Item.SubItems.IndexOf(info.SubItem); // 得到双击的column
switch (colIdx)
{
case "":
  // do thing 1
break; case "":
// do thing 2
break; ...
...
           }
}

一点感叹

遥想LZ刚刚工作的时候,正式.net在桌面开发大展宏图之时。。。当时做UI,首先想到的就是winform技术。。。

然而时过境迁,随着microsoft接连错过互联网与大数据的浪潮,昔日的女神仿佛已经跌下神坛。。。

扯远了!! 恩,咳咳,真心希望microsoft和.net平台能够借助.net core 2.0之势,在今后再起崛起,引用一句女神的广告语:make .net great again!

乱七八糟写了一大堆,还请各位看官海涵。。最后, 感谢大家的收看,祝大家周末愉快 :)

陈年佳酿之 - Winform ListView 控件 double click 事件中获取选中的row与column的更多相关文章

  1. 在CTreeCtrl控件点击事件中获取点击的项

    网上搜了一下,有两种方法: 1.使用GetSelectedItem() HTREEITEM hItem = m_treeCtrl.GetSelectedItem(); CString strText ...

  2. 在asp.net页面上按回车会触发Imagebutton控件的Click事件

    原文:在asp.net页面上按回车会触发Imagebutton控件的Click事件 问题: 用asp.net做的aspx页面,无论是否有文本框.下拉框.复选框……获得焦点,只要在当前页面上按一下回车就 ...

  3. winform listview控件

    ListView控件 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置 ...

  4. C# 动态代码生成控件后其他事件不能获取该控件的值

    1.新建web项目,添加两个Button控件,结果如图. 2.Button按钮控件点击事件代码如下 protectedvoid Button1_Click(object sender, EventAr ...

  5. Winform listview控件、 容器控件

    1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置行和列之间是否显示网格 ...

  6. winform listview控件、容器控件

    ListVies控件主要用于展示数据 常用属性: FullRowSelect:设置是否行选择模式.(默认为false) (开启之后一下选中一行数据) GridLines:设置行和列之间是否显示网格线. ...

  7. easyui-datetimebox 控件绑定双击事件实现自动选中当前日期时间

    本方法是在不改变原 js 的情况下,通过扩展方法来实现本目的 首先在 datetimebox 控件中扩展一个 绑定双击事件 的方法 $.extend($.fn.datetimebox.methods, ...

  8. C# Winform ListView控件

    一.ListView: 1.视图改为为Detalis: 2.编辑列,每添加一个添加一列,右侧属性Text改列名,停靠位置,列头的长度等等: 3.右侧属性,点开Iteme,添加ListViewItem集 ...

  9. ==========2014-04-24=========winform树控件勾选方法 和获取所有选中的

    http://bbs.bccn.net/thread-197567-1-1.html /// <summary> /// 已选中或取消选中树节点上的复选框时 /// </summar ...

随机推荐

  1. 006.Adding a controller to a ASP.NET Core MVC app with Visual Studio -- 【在asp.net core mvc 中添加一个控制器】

    Adding a controller to a ASP.NET Core MVC app with Visual Studio 在asp.net core mvc 中添加一个控制器 2017-2-2 ...

  2. linux+windows mysql导入导出sql文件

    linux下 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql# ...

  3. node 控制 树莓派做的天气闹钟

    node 控制 树莓派做的天气闹钟 在成都上班,下雨天堵车,迟到的概率会很大. 正好手上有一块树莓派 ,做了一个晴雨闹钟. 下雨天 早上 7:00叫我起床 晴天 早上 7:30叫我起床 将自己喜欢的歌 ...

  4. (转)用JUnit4进行单元测试

    场景:从开始写代码至今,对于单元测试一直没有重视,但是也厌倦了了程序中的额System.out和log日志输出.单元测试使我看到了在开发过程中的安全性和便捷性,所以下决心好好整理下. 有感而发——&l ...

  5. (转)HTTP协议漫谈

    HTTP协议漫谈   简介 园子里已经有不少介绍HTTP的的好文章.对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将HTTP协议的元素进行分类讲 ...

  6. (转)添加eclipse、MyEclipse、Spring Tool Suite的反编译插件

    很多兄弟为在IDE里看不到源代码类而不得不下一个反编译工具,但是这样会降低代码效率,如果能直接在IDE里看,何乐而不为呢!现在我整理了一下网上很多兄弟的设置反编译的经验. 可分为下面几步. 1 下载J ...

  7. (转)Eclipse快捷键 10个最有用的快捷键

    1 Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升. 1 ...

  8. 函数响应式编程及ReactiveObjC学习笔记 (四)

    今天我们继续看其他的类别 UIImagePickerController+RACSignalSupport.h #import <UIKit/UIKit.h> @class RACDele ...

  9. java循环

    .增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的(可以查看编译后的文件),但是增强for循环 有些缺点,例如不能在增强循环里动态的删除 ...

  10. 如何修改script.bin/script.fex

    你是否经常看见其他帖子里或者其他人提到要修改script.bin或script.fex ,但你又不知道怎么改. 其实 script.bin就是script.fex通过 fex2bin生成的,scrip ...