tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDataGridViewをマウスクリックで値を取得したい
記事No6913
投稿日: 2008/01/28(Mon) 21:07
投稿者佐藤
いつもお世話になっております。
VB2005で開発しております。

DataGridViewでマウスをクリックしたら、その行の一番左にあるセルの値を
表示したいのですが、どうしてもひとつ前にクリックした値が表示されてしまいます。

HitTestInfoを使うようなのですが、Googleで検索してソースを書いてみても
思うように行かず、困り果てた状態です。

前にHitTestInfoを使わないでも出来ていたソースを見かけた気もするのですが、
いくら検索してもHitせず。

お忙しい中とは存じますが、お分かりになる方がいらっしゃいましたら
ご教授願えませんでしょうか。

[ツリー表示へ]
タイトルRe: DataGridViewをマウスクリックで値を取得したい
記事No6916
投稿日: 2008/01/28(Mon) 21:44
投稿者花ちゃん
> DataGridViewでマウスをクリックしたら、その行の一番左にあるセルの値を

下記では。
Private Sub DataGridView1_CellEnter(ByVal sender As Object, ByVal e As _
    System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEnter

DataGridView1.Item(0, DataGridView1.CurrentCell.RowIndex).Value.ToString()

[ツリー表示へ]
タイトルRe: DataGridViewをマウスクリックで値を取得したい
記事No6917
投稿日: 2008/01/28(Mon) 21:50
投稿者魔界の仮面弁士
処理対象となる操作は、矢印キーによる操作(CellEnter ではなく)、
マウスクリックのみで良いのですね?


> DataGridViewでマウスをクリックしたら、その行の一番左にあるセルの値を
> 表示したいのですが、どうしてもひとつ前にクリックした値が表示されてしまいます。

当方では再現しませんでした。現在は、どのようなコードを書いていますか?

Public Class Form1
    WithEvents DataGridView1 As New DataGridView()
    Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        DataGridView1.Dock = DockStyle.Fill
        DataGridView1.AllowUserToAddRows = False
        DataGridView1.ColumnCount = 5
        DataGridView1.RowCount = 10
        For r As Integer = 0 To 9
            For c As Integer = 0 To 4
                DataGridView1(c, r).Value = String.Format("{0}-{1}", r, c)
            Next
        Next
        Controls.Add(DataGridView1)
    End Sub
    Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        Dim leftCell As String = ""
        If e.RowIndex >= 0 Then
            Dim dgv As DataGridView = DirectCast(sender, DataGridView)
            leftCell = CStr(dgv(0, e.RowIndex).Value)
        End If
        Me.Text = leftCell
    End Sub
End Class

[ツリー表示へ]
タイトルRe^2: DataGridViewをマウスクリックで値を取得したい
記事No6918
投稿日: 2008/01/29(Tue) 11:07
投稿者佐藤
花ちゃん様 魔界の仮面弁士様、お二人のご教授どおりで出来ました。
誠に有難う御座います。

HitTestInfoを使わなくても、今クリックした行を取得できるのですね。
CurrentRowを使っていたらどうしてもクリックの前に選択していた
行を取得するようでしたので。

有難う御座います。

[ツリー表示へ]