Visual Basic 限定的サンプル
VB.NET 2002 対応 VB.NET 2003 対応

 

Visual Basic 中学校 > 限定的サンプル >

DataGridでKeyDownイベントを取得

Button1をクリックするとSQL ServerのサンプルデータベースであるpubsのauthorsテーブルをDataGrid1に表示します。1列目が選択されている状態でDeleteキーを押すとメッセージが表示されます。

必要なコントロール
Button1
DataGrid1

 

VB.NET 2002 対応 VB.NET 2003 対応

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    '●グリッドにデータを表示

   
Dim Cn As SqlClient.SqlConnection

   
'データベースへの接続方法は環境により異なります。以下の行を適当に書き換えてください。
   
Cn = New SqlClient.SqlConnection("Server=(local);User ID=sa;Password=;Initial Catalog=pubs")

    Dim
sqlSelect As New SqlClient.SqlCommand("SELECT * FROM authors", Cn)
    Dim Adapter As New SqlClient.SqlDataAdapter(sqlSelect)
    Dim Table As New DataTable("DefaultTable")

    Adapter.Fill(Table)

    DataGrid1.DataSource = Table

   
'●KeyDownイベントの割り当て

    'ここでは最初の列にだけKeyDownイベントを割り当てる。

    '列を動的に生成している場合は以下のような感じになる。
   
AddHandler CType(DataGrid1.Controls(2), DataGridTextBox).KeyDown, AddressOf DGTextBox_KeyDown

   
'データグリッドに列をあらかじめ明示的に定義している場合は次のような記述の方が良い
    'AddHandler DataGridTextBoxColumn1.TextBox.KeyDown, AddressOf DGTextBox_KeyDown

End Sub
Private Sub DGTextBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)

    If
e.KeyCode = Keys.Delete
Then
       
'Deleteキーが押された場合
       
Dim RowIndex As Integer
       
RowIndex = DataGrid1.CurrentRowIndex
        MsgBox(RowIndex + 1 & "行目でDeleteキーが押されました。")
    End
If

End Sub