我正在处理属性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");
}
}
如何捕捉鼠标右键?
答案 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事件。