RadGridView 检测 CellClick 事件按钮
Posted
技术标签:
【中文标题】RadGridView 检测 CellClick 事件按钮【英文标题】:RadGridView detect CellClick event button 【发布时间】:2013-12-05 15:14:52 【问题描述】:如何检测在事件 CellClick 中按下了哪个鼠标按钮,或者如何检测在事件 MouseClick 中按下了哪个单元格。
【问题讨论】:
一个问题...这真的是DataGridView吗? 抱歉,是 RadGridView,我的错。 没问题;我也误读了你的问题,所以我们甚至:) 【参考方案1】:您可以使用鼠标点击事件检测哪个单元格被点击。
然后你必须将 sender 转换为 RadGridView,然后使用 CurrentCell 属性。
GridViewCellInfo dataCell = (sender as RadGridView).CurrentCell;
如果您想点击哪个鼠标按钮,请使用:
if (e.Button == MouseButtons.Right)
//your code here
【讨论】:
【参考方案2】:我写了这个答案,认为你的意思是DataGridView
;但这段代码也可能对RadGridView
有用。在这些情况下(使用DataGridView
)我通常做的是依靠全局标志来协调两个不同的事件;只需几个全局标志就可以了。示例代码:
bool aCellWasSelected = false;
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
aCellWasSelected = true;
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
DataGridViewCell selectedCell = null;
if (aCellWasSelected)
selectedCell = dataGridView1.SelectedCells[0];
MouseButtons curButton = e.Button;
//Do stuff with the given cell + button
aCellWasSelected = false;
注意:提议的基于全局变量的方法并不是理想的方法,但在很多与 DataGridView 相关的情况下,它是一种非常方便的实用解决方案。如果有一个直接的解决方案,如在这种情况下(如在其他答案中提出的,或者在 DataGridView 中,CellMouseClick
事件),您永远不应该使用这种方法。无论如何,我都会让这个答案作为参考(对于寻找等效的两个事件协调情况的人,没有直接的解决方案)。
【讨论】:
谢谢,但我不想使用全局变量。 @bonio 说的对RadGridView没有太多经验;但是,至少在 DataGridView 中,这在很多情况下是“必需的”(= 最充分的程序)。以上是关于RadGridView 检测 CellClick 事件按钮的主要内容,如果未能解决你的问题,请参考以下文章
Telerik WinForm RadGridView清除过滤
即使禁用RadGridView GridViewSelectColumn仍然可以选择