Skip to content

Visual Basic.NET DataGridViewの小技③

Posted in Visual Basic .NET, プログラム関係, and 技術メモ


DataGridViewの小技3

前回の続き「DataGridView」で頑張っているテクニック集

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■

★セルを選択した場合の発生イベント

Private Sub DataGridView_CellBeginEdit(ByVal sender As Object,_
        ByVal e As DataGridViewCellCancelEventArgs) _
        Handles DataGridView.CellBeginEdit

End Sub

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■

★セルから離れる場合の発生イベント

Private Sub DataGridView_CellEndEdit(ByVal sender As Object,_
        ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
        Handles DataGridView.CellEndEdit

End Sub

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■

★セルを編集できないようにする(オブジェクトレベルで設定)

DataGridView.EditMode = DataGridViewEditMode.EditProgrammatically

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■

★セルを編集できないようにする(任意の列、行、セルを指定)

'DataGridViewの1番目の列を読み取り専用
DataGridView.Columns(0).ReadOnly = True

'DataGridViewの2番目の行を読み取り専用
DataGridView.Rows(1).ReadOnly = True

'DataGridViewの(1, 2)→(2番目の列,3番目の行)のセルを読み取り専用
DataGridView(1, 2).ReadOnly = True

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■

★セルを編集できないようにする(セルイベントから実現①)

Private Sub DataGridView_CellBeginEdit(ByVal sender As Object, _
        ByVal e As DataGridViewCellCancelEventArgs) _
        Handles DataGridView.CellBeginEdit

        '編集できないようにする
        e.Cancel = True

End Sub

※このサンプルはDataGridViewの任意のセルを選択した時に「CellBeginEdit」イベントが発生することを利用して無条件でキャンセルするようにして編集できなくしています。

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■

★セルを編集できないようにする(セルイベントから実現②)

rivate Sub DataGridView_CellBeginEdit(ByVal sender As Object, _
        ByVal e As DataGridViewCellCancelEventArgs) _
        Handles DataGridView.CellBeginEdit

    '1つ前のカラムの値を確認する
    If  DataGridView(DataGridView.CurrentCellAddress.X - 1, DataGridView.CurrentCellAddress.Y).Value <> 1 Then
        '編集できないようにする
        e.Cancel = True
    End If

End Sub

※このサンプルはDataGridViewの任意のセルを選択した時に「CellBeginEdit」イベントが発生することを利用して1つ左側のセルが「1」以外の値を取った場合はキャンセルするようにして編集できなくしています。

Be First to Comment

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA