Visual Studio 2005 の VS.NET Visual Basic で記述されたアプリケーションがあります。
DataGridView
データベースから取得したデータを表示するためのコントロールを備えた Windows フォームがあります。
ユーザーがレコードを右クリックしてコンテキスト メニューを表示し、[削除] をクリックしてそのレコードだけをデータベースから削除できるようにしたいと考えています。
残念ながら、マウスダウンやクリックイベントを発生させることさえできません(デバッグモードで、ブレークポイントが設定されています)
ここに私のコードがあります:
Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
MessageBox.Show("You right-clicked on the grid at", "Unpaid", MessageBoxButtons.OK)
End Sub
Private Sub DataGridView1_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDoubleClick
MessageBox.Show("You right-clicked on the grid at", "Unpaid", MessageBoxButtons.OK)
End Sub
Private Sub DataGridView1_CellMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
MessageBox.Show("Clicked right")
else
MessageBox.Show("Clicked left")
End If
Dim r As Rectangle
if (e.RowIndex >= 0 && e.ColumnIndex >= 0 && e.Button == MouseButtons.Right)
DataGridView1.Rows(e.RowIndex).Selected = True
r = DataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, True)
contextMnu.Show(DataGridView1, r.Left + e.X, r.Top + e.Y)
End If
End Sub
Private Sub DeleteChequeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeleteChequeToolStripMenuItem.Click
MessageBox.Show("You right-clicked on the grid", "Unpaid", MessageBoxButtons.OK)
End Sub
ご覧のとおり、何らかのイベントを発生させようとしていますが、右クリックまたは左クリックしてもコードが実行されません。
ところで、実行時にグリッドにデータがあり、私が知る限り、それは有効になっています
それで、私はここで何が間違っていますか?DataGridView
コントロールに追加する必要がある機能はありますか?