如何从DoubleClick事件处理程序中的DevExpress GridControl获取Point?

时间:2012-12-04 22:28:20

标签: c# parameters casting devexpress

我正在使用DevExpress.XtraGrid.GridControl和c#中的双击事件。事件处理程序签名将对象和EventArgs作为其参数:

  private void gvHL7_DoubleClick(object sender, EventArgs e){
     .
     .
     .
  }

但是,我想使用.Point属性,而EventArgs没有该属性。我知道DevExpress.XtraGrid.Views.Grid.GridMenuEventArgs会这样做,但它说这是一个无效的转换。如果我想访问.Point属性,我应该将EventArgs实例转换为什么类型?

编辑:我正在使用的双击功能由devexpress为他们的网格提供。

3 个答案:

答案 0 :(得分:2)

请参阅DevExpress Support site中的此示例。您需要投放sender才能获得Point

private void gridView1_DoubleClick(object sender, EventArgs e)
{
    GridView view = (GridView)sender;    
    Point pt = view.GridControl.PointToClient(Control.MousePosition);    
}

答案 1 :(得分:0)

C#中的DoubleClick事件只会告诉您发生了双击。如果您需要鼠标坐标,则需要捕获MouseClick事件或使用控件抛出事件的MousePosition属性(在这种情况下,gvHL7.MousePosition最有可能)。

答案 2 :(得分:0)

我解决了问题,但无法获得点属性。相反,我将EventArgs转换为MouseEventArgs并通过.X和.Y属性将坐标传递给函数。