- PR -

VB2005 DatagridviewのCellClickイベントで値がない部分をクリックしても反応しない

1
投稿者投稿内容
2005
会議室デビュー日: 2004/09/13
投稿数: 3
投稿日時: 2008-10-21 11:15
お世話になります

VB2005のDatagridviewのCellClickイベントを利用して、マウスでクリックしたセルの列情報を取得しようとしています。

Datagridviewに表示されたセルの中でセル内の値部分をクリックするとイベントが発生するのですが、セル内の値以外の余白部分やnull値の入ったセルをクリックしてもイベントが発生しません。

セル内の値以外の余白部分やnull値の入ったセルのクリックについてもイベントが発生するようにするにはどうしたらよいのでしょうか。

CellMouseClickも同様でした。
お だ
会議室デビュー日: 2008/04/02
投稿数: 14
投稿日時: 2008-10-21 12:11
CellContentClick イベントを使用していませんか?

VS2008 で下記コードを試しましたが、
CellClick イベント、 CellMouseClick イベントは余白をクリックしても
イベントが発生しました。

※デザイナで DataGridView を貼り付けただけの状態です。
コード:
Public Class Form1
    Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
        Dim table As DataTable
        table = New DataTable()
        table.Columns.Add("AAA")
        table.Columns.Add("BBB")
        table.Rows.Add("ABC", 1)
        table.Rows.Add(DBNull.Value, DBNull.Value)
        table.Rows.Add("ABC", 1)
        table.Rows.Add("ABC", 1)
        table.Rows.Add("ABC", 1)
        table.Rows.Add("ABC", 1)
        DataGridView1.DataSource = table
    End Sub
    Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        MessageBox.Show(String.Format("CellClick Row:{0} Col:{1}", e.RowIndex, e.ColumnIndex))
    End Sub
    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        MessageBox.Show(String.Format("CellContentClick Row:{0} Col:{1}", e.RowIndex, e.ColumnIndex))
    End Sub
    Private Sub DataGridView1_CellMouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseClick
        MessageBox.Show(String.Format("CellMouseClick Row:{0} Col:{1}", e.RowIndex, e.ColumnIndex))
    End Sub
End Class

2005
会議室デビュー日: 2004/09/13
投稿数: 3
投稿日時: 2008-10-21 12:31
"おだ"さん ご教示ありがとうございました。

コーディングミスをしていました。ご指摘通り、CellContentClickとなっていました。

じつは、CellClickとしていたつもりが、関数名だけ変えていて
Private Sub DataGridView1_CellClick(ByVal ・・・ ) Handles DataGridView1.CellContentClick
と、Handles以降をCellContentClickとしていました。

大変申し訳ございませんでした。
1

スキルアップ/キャリアアップ(JOB@IT)