右键单击propertyGridControl不起作用

时间:2011-03-10 11:02:36

标签: devexpress mouseclick-event

我正在处理属性ClickGridControl上的Click和MouseClick,但是当我点击右键时没有任何反应 - 它只捕获左侧。

private void propertyGridControl_Click(object sender, EventArgs e)
    {
        int i = 0;
        if (e.Button == System.Windows.Forms.MouseButtons.Right)
        {
            MessageBox.Show("right");
        }
    }

如何捕捉鼠标右键?

1 个答案:

答案 0 :(得分:1)

我已经检查了MouseClick事件的工作原理,但没有看到这个问题。事件正确提出。我查看了PropertyGridControl的10.2.5(最新版本)。我只能想象你在网格的编辑器里面点击。在这种情况下,鼠标和键盘事件由就地编辑器而不是网格管理。要捕获此事件,您可以使用以下代码:

private void propertyGridControl1_ShownEditor(object sender, EventArgs e) {
    PropertyGridControl pgc = sender as PropertyGridControl;
    pgc.ActiveEditor.MouseClick -= new MouseEventHandler(ActiveEditor_MouseClick);
    pgc.ActiveEditor.MouseClick += new MouseEventHandler(ActiveEditor_MouseClick);
}

void ActiveEditor_MouseClick(object sender, MouseEventArgs e) {
    if(e.Button == System.Windows.Forms.MouseButtons.Right) {
        MessageBox.Show("right");
    }            
}

我还有一个想法。如果设置了控件的ContextMenuStrip属性,则在按下鼠标右键时不会引发MouseClick事件。是你的情况吗?解决方案很简单 - 处理控件的MouseDown事件。