陈年佳酿之 - Winform ListView 控件 double click 事件中获取选中的row与column
背景
最近收到了一个关于以前项目的维护请求,那时的楼主还是刚刚工作的小青年~~~
项目之前使用的是.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的更多相关文章
- 在CTreeCtrl控件点击事件中获取点击的项
网上搜了一下,有两种方法: 1.使用GetSelectedItem() HTREEITEM hItem = m_treeCtrl.GetSelectedItem(); CString strText ...
- 在asp.net页面上按回车会触发Imagebutton控件的Click事件
原文:在asp.net页面上按回车会触发Imagebutton控件的Click事件 问题: 用asp.net做的aspx页面,无论是否有文本框.下拉框.复选框……获得焦点,只要在当前页面上按一下回车就 ...
- winform listview控件
ListView控件 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置 ...
- C# 动态代码生成控件后其他事件不能获取该控件的值
1.新建web项目,添加两个Button控件,结果如图. 2.Button按钮控件点击事件代码如下 protectedvoid Button1_Click(object sender, EventAr ...
- Winform listview控件、 容器控件
1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置行和列之间是否显示网格 ...
- winform listview控件、容器控件
ListVies控件主要用于展示数据 常用属性: FullRowSelect:设置是否行选择模式.(默认为false) (开启之后一下选中一行数据) GridLines:设置行和列之间是否显示网格线. ...
- easyui-datetimebox 控件绑定双击事件实现自动选中当前日期时间
本方法是在不改变原 js 的情况下,通过扩展方法来实现本目的 首先在 datetimebox 控件中扩展一个 绑定双击事件 的方法 $.extend($.fn.datetimebox.methods, ...
- C# Winform ListView控件
一.ListView: 1.视图改为为Detalis: 2.编辑列,每添加一个添加一列,右侧属性Text改列名,停靠位置,列头的长度等等: 3.右侧属性,点开Iteme,添加ListViewItem集 ...
- ==========2014-04-24=========winform树控件勾选方法 和获取所有选中的
http://bbs.bccn.net/thread-197567-1-1.html /// <summary> /// 已选中或取消选中树节点上的复选框时 /// </summar ...
随机推荐
- 如何通过css设置表格居中
CSS控制整个表格居中,不只是让表格里的文字居中,是整个表格居中1. 不用table的Align="center",要用CSS实现2. 不加<center></c ...
- 【Xbox one S】开箱&开机&初入坑心得
再来一发水贴,先上产品标准照镇贴: 前言 身为一个资深单机游戏玩家,常年混迹在PC平台,但内心深处一直对主机有种迷之向往,感觉那才是单机游戏的正处之地,坐沙发上拿着手柄对着电视跌宕起伏才是正确的游戏姿 ...
- POJ 2152 fire / SCU 2977 fire(树型动态规划)
POJ 2152 fire / SCU 2977 fire(树型动态规划) Description Country Z has N cities, which are numbered from 1 ...
- 跨域访问http接口的使用
最近在弄一个sip网页集成版软电话,为了功能的完善,呼叫中心的工作人员为我们提供了一个http接口,我先在网页中直接打开分析了一下他的返回值,然后又放到js中去访问,结果一放到js中一访问就发现浏览器 ...
- CentOS 6.5 下安装 Redis 2.8.7(转载)
wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make ...
- neo4j 数据库导入导出
工作中需要将 A 图数据库的数据完全导出,并插入到 B 图数据库中.查找资料,好多都是通过导入,导出 CSV 文件来实现.然而,经过仔细研究发现,导出的节点/关系 都带有 id 属性 ,因为 A B ...
- 小白也能看懂的插件化DroidPlugin原理(二)-- 反射机制和Hook入门
前言:在上一篇博文<小白也能看懂的插件化DroidPlugin原理(一)-- 动态代理>中详细介绍了 DroidPlugin 原理中涉及到的动态代理模式,看完上篇博文后你就会发现原来动态代 ...
- Nginx文档-初学者指南
原文档: http://nginx.org/en/docs/beginners_guide.html 译者:Oopsguy 本指南旨在介绍nginx基本内容和一些在Nginx上可以完成的简单任务.这里 ...
- 分页功能的实现——Jdbc && JSP
@目录 什么是分页 ? 两个子模块功能的问题分析 和 解决方案 有条件查和无条件查询的影响 和 解决方案 项目案例: mysql + commons-dbutils+itcast-tools+Base ...
- 计算机网络之应用层_part -1
应用层协议原理 一.网络应用程序体系结构 网络应用程序体系结构是由程序研发者设计的,规定了如何在各种端系统中组织该应用程序,主要流行的有两种: 1.客户--服务器体系结构: 有一个总是打开的主机(称为 ...