WinForm/C# GridView 双击或右键点击获取点击的列信息

xinggang · 2018年11月17日 · 121 次阅读

业务场景:

WnGrid 在某个单元格上右键单击时,根据单元格的值获取业务信息并展示。

遇到的问题:

若点击的不是当前行 ,MouseDown 事件优先触发,在代码中获取的 CurrRow 是点击前的行,而非正在点击的行。看动图: 20170826110254

解决方案:

利用 GridView 的 GridHitInfo,根据点击的位置获取 GridHitInfo 对象即可。

示例代码:

https://git.weiku.co/ifu25/WinFormDemo/src/master/WinFormDemo/GridViewGridHitInfo.cs
^_^

代码层面上是这样的,也可以根据后续代码实现实际操作不影响,不会弹出上一行信息,因为他右键时会切换当前行,会把窗体顶掉并切换行

wangchenye 回复

代码层面上是这样的,也可以根据后续代码实现实际操作不影响,不会弹出上一行信息,因为他右键时会切换当前行,会把窗体顶掉并切换行

你的逻辑是这样的:右键另一行 → 按旧行去数据库取数 → 显示 Group → 行切换 → 隐藏 Group。

表面上是看不出问题。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册