簡體   English   中英

DevExpress GridView FocusedRowHandle不會在右鍵單擊時更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM