0

現在アクティブなdatagridview2のイベントハンドラーにいるときに、別の(非アクティブな)datagridview1でdatagridview1の正確な行(MultiSelect = False)が選択されているかどうかを知る必要がある状況があります。

私はたくさんの試みを試みましたが、正しい結果はありませんでした。

   Private Sub DataGridView2_CellDoubleClick(ByVal sender As Object, _
           ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
           Handles DataGridView2.CellDoubleClick

   Dim myindex1 As Integer = DataGridView1.CurrentCell.RowIndex

   OR

   Dim myindex1 As Integer = DataGridView1.CurrentRow.Index

datagridview1がアクティブで、イベントハンドラーからインデックスを取得している場合のように、これは機能しません。

どうすればよいですか。また、2番目のdatagridviewのイベントハンドラーから最初のdatagridviewの選択された行をどの程度正確に取得しますか?

編集:追加されたコード:

Private Sub datagridview1_RowLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.RowLeave
    selrow1 = e.RowIndex
End Sub

Private Sub datagridview1_RowPrePaint(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowPrePaintEventArgs) Handles DataGridView1.RowPrePaint
    e.PaintParts = e.PaintParts And Not DataGridViewPaintParts.Focus
End Sub

Private Sub datagridview1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.GotFocus
    DataGridView1.RowsDefaultCellStyle.SelectionBackColor = Color.FromKnownColor(KnownColor.Highlight)
End Sub

Private Sub datagridview1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.LostFocus
    DataGridView1.RowsDefaultCellStyle.SelectionBackColor = Color.FromKnownColor(KnownColor.InactiveCaption)
End Sub
4

0 に答える 0