2013-04-30 76 views
0

好的我想測試datagridview該datagridview的doubleclick事件。既然它是doubleclick事件,你只需要eventArgs而不是MouseEvent,所以我不知道雙擊的執行位置。如何在DoubleClick事件中測試DataGridView

我嘗試了Cursor.Position,但它並沒有成功。

任何人都有解決方案嗎?

這裏的功能:

private void dgvFormulaires_DoubleClick(object sender, EventArgs e) 
{ 
    if (dgvFormulaires.Rows.Count == 0) 
     return; 

    //I replaced the commented line with those 2 lines and now it work 
    System.Drawing.Point pt = dgvFormulaires.PointToClient(Cursor.Position); 
    DataGridView.HitTestInfo test = dgvFormulaires.HitTest(pt.X, pt.Y); 
    //DataGridView.HitTestInfo test = dgvFormulaires.HitTest(Cursor.Position.X, Cursor.Position.Y); 
    if(test.RowIndex >= 0) 
     btnGestForm.PerformClick(); 
} 

行索引常是-1,該代碼

/編輯添加的回答到這裏

+0

我自己發現。現在的答案是在這個問題上。我應該刪除嗎? – 2013-04-30 19:15:32

+1

回答你自己的問題更好。 48小時後,您將能夠接受自己的答案。 – Neolisk 2013-04-30 20:22:04

回答

1

我換成這行

DataGridView.HitTestInfo test = dgvFormulaires.HitTest(Cursor.Position.X, Cursor.Position.Y); 

與那2行,現在它工作很好

System.Drawing.Point pt = dgvFormulaires.PointToClient(Cursor.Position); 
DataGridView.HitTestInfo test = dgvFormulaires.HitTest(pt.X, pt.Y); 
+0

任何想法如何將HitTest的DataGridRow相對於gridview? – 2013-08-20 11:11:29

+0

@eranotzap我不太確定你爲什麼想這樣做。通過獲得'HitTestInfo',你可以得到命中的行和列。 – 2013-08-20 11:40:47

相關問題