[英]DevExpress GridView FocusedRowHandle Does not update on right click
我有一個DevExpress datagridview,其中列出了我們的員工必須做的一些工作。 實際上,右鍵單擊一個作業(行),然后選擇一個菜單項以啟動程序的其他部分。 程序下一部分中填充的信息來自FocusedRowHandle。
Dim someString as String = gvMyGV.GetRowCellValue(gvMyGV.FocusedRowHandle, "ColumnHeader")
現在,如果員工在該行上左鍵單擊以選擇它,然后右鍵單擊-> MenuItem以啟動下一步,則一切正常。 但是,如果他們右鍵單擊尚未突出顯示的任何其他行,則在啟動下一個階段之后,FocusRowHandle才會更新為新單擊的行,從而導致它們加載在執行右鍵單擊之前選擇的作業的信息。 。
DevEx選中的行以視覺方式更新突出顯示(行變為黃色),但是FocusedRowHandle值一直保持不變,直到上下文菜單關閉。
在加載ContextMenu之前,我需要在右鍵單擊上更新RowHandle。
找到的解決方案:
Private Sub gvMyGV_MouseDown(sender As Object, e As MouseEventArgs) Handles gvMyGV.MouseDown
If e.Button = MouseButtons.Right Then
Dim hitInfo As GridHitInfo = gvMyGV.CalcHitInfo(New Point(e.X, e.Y))
gvStatus.FocusedRowHandle = hitInfo.RowHandle
End If
End Sub
這就是他們一貫的方式。 這是我從需要修復的應用程序中提取的一些代碼,但它使用的是DevExpress 8,但應該相同。
Private Sub GridView2_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles GridView2.MouseDown
If e.Button = MouseButtons.Right Then
Dim view As GridView = CType(sender, GridView)
If view Is Nothing Then Return
' obtaining hit info
Dim hitInfo As GridHitInfo = view.CalcHitInfo(New Point(e.X, e.Y))
' switching focus
view.FocusedRowHandle = hitInfo.RowHandle
End If
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.