DOBON.NETプログラミング道掲示板

■35628 / 1階層)  DataGridViewの複数行選択で歯抜け選択を無効にしたい
□投稿者/ KOZ 一般人(39回)-(2024/09/21(Sat) 18:58:18)
  • アイコン
    No35626に返信(HKaneさんの記事)
    > DataGridViewで、
    > SelectionMode = FullRowSelect
    > MultiSelect = True
    > の状態にすると、複数行選択が可能ですが、
    > 1行のみ、または、連続行選択のみを許し、
    > 例えば10行あるデータで2行目と5行目のみの選択のような歯抜け選択を許さないようにする方法はあるでしょうか?
    
    
    DataGridView を継承したコントロールを作り、SetSelectedRowCore をオーバーライドして、すでに選択された行が存在する場合、上の行か下の行が選択状態かどうかをチェックするといいのでは。
    
    Public Class DataGridViewEx
        Inherits DataGridView
    
        Protected Overrides Sub SetSelectedRowCore(rowIndex As Integer, selected As Boolean)
            If selected AndAlso SelectedRows.Count > 0 Then
                If Not IsRowSelected(rowIndex + 1) AndAlso Not IsRowSelected(rowIndex - 1) Then
                    selected = False
                End If
            End If
            MyBase.SetSelectedRowCore(rowIndex, selected)
        End Sub
    
        Private Function IsRowSelected(rowIndex As Integer) As Boolean
            If rowIndex >= 0 AndAlso rowIndex < RowCount Then
                Return Rows(rowIndex).Selected
            End If
            Return False
        End Function
    
    End Class
    

違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←DataGridViewの複数行選択で歯抜け選択を無効にしたい /HKane 返信無し
 
上記関連ツリー

Nomalアイコン DataGridViewの複数行選択で歯抜け選択を無効にしたい / HKane (24/09/20(Fri) 15:16) #35626
Nomalアイコン Re[1]: DataGridViewの複数行選択で歯抜け選択を無効にしたい / 魔界の仮面弁士 (24/09/20(Fri) 18:58) #35627
Nomalアイコン DataGridViewの複数行選択で歯抜け選択を無効にしたい / KOZ (24/09/21(Sat) 18:58) #35628 ←Now

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -