2016-05-19 110 views
0

VB6コードをVB.NETに移行する段階にあり、.NET 4.5.2を使用してVS2013段階まで行っています。元のコードには、ダブルクリック時の行削除とシングルクリック時の行選択/選択解除を可能にするFlexGridがあります。ダブルクリックがうまくいくと、行が削除され、すべての行が選択解除されます(ヘッダーセルをダブルクリックすると、行の順序が変更され、行がクリックされていないため、今選択された行)。それが適切かどうかはわかりませんが、私はそれをちょうどの場合に含めました。クリック時のDataGridViewの行の選択解除/選択解除

私はhereのように見えましたが、この動作が予想され、クライアントがCtrl +クリックメソッドを使用して選択を解除するように再トレーニングする必要があるかどうかを知りたい場合はわかりません。それがどうして必要なのか、そうであれば、私はこの仕事をしようとする必要があります。

この

Private Sub grdSelectedOps_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles grdSelectedOps.CellClick 
    If Not grdSelectedOps(e.ColumnIndex, e.RowIndex).Selected Then 
     grdSelectedOps(grdSelectedOps.CurrentCell.ColumnIndex, grdSelectedOps.CurrentCell.RowIndex).Selected = True 

    Else 
     grdSelectedOps(grdSelectedOps.CurrentCell.ColumnIndex, grdSelectedOps.CurrentCell.RowIndex).Selected = False 
    End If 
End Sub 

ような何かをするために、セルをクリックしてイベントを使用すると、あなたはそれを選択したセルをクリックしたので、それは常に、すぐにそれを選択解除した場合ので、動作しません。複数選択はオフです。これは可能ですか?

答えて

2

あなたの質問がここで答えている:

Toggle Selection in DataGrid

それはので、ここでのC#で同等のVB.NETコードです:

REM Keeps track of selection status 
Private selectionChanged As Boolean 

REM Fires Second 
Private Sub dataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) 
    If Not selectionChanged Then 
     dataGridView1.ClearSelection() 
     selectionChanged = True 
    Else 
     selectionChanged = False 
    End If 
End Sub 

REm Fires first 
Private Sub dataGridView1_SelectionChanged(sender As Object, e As EventArgs) 
    selectionChanged = True 
End Sub 

あなたは提供するために、データグリッドコントロールを無効にすることもできますこの機能は内部的には機能しますが、それはあなた次第です。

+0

感謝します。これはまさに私が必要としていたものです! – pixelmeow

+0

:)ハッピーコーディング – mike100111

関連する問題