RadGridView检测CellClick事件按钮

时间:2013-11-21 08:45:35

标签: c# telerik telerik-grid

如何检测事件CellClick中按下了哪个鼠标按钮,或者如何在事件MouseClick中检测到哪个按下了哪个单元格。

2 个答案:

答案 0 :(得分:3)

您可以使用鼠标单击事件检测单击了哪个单元格。

然后你必须将发送者强制转换为RadGridView,然后使用CurrentCell属性。

GridViewCellInfo dataCell = (sender as RadGridView).CurrentCell;

如果您想要点击哪个鼠标按钮,请使用:

if (e.Button == MouseButtons.Right)
{
//your code here
}

答案 1 :(得分:1)

我写了这个答案,认为你的意思是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事件),则不应使用这种方法。无论如何,我都会将这个答案作为参考(对于寻找等效的双事件协调情况的人来说,没有直接的解决方案)。