tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDataGridViewで選択されたセルの列名を取得したい
記事No4197
投稿日: 2006/09/06(Wed) 09:39
投稿者KEN
いつも勉強させていただいております。

VB2005でアプリケーションの開発をおこなっています。

DataGridViewの選択されたセルの列のインデックスは
DataGridView1.CurrentCell.ColumnIndexや
DataGridView1.CurrentCellAddress.Y
で取得できるのですが、列名がどうしても取得できません。

どなたかお分かりの方はご教授のほどよろしくお願いいたします。

[ツリー表示へ]
タイトルRe: DataGridViewで選択されたセルの列名を取得したい
記事No4201
投稿日: 2006/09/06(Wed) 11:13
投稿者なおこ(・∀・)
お世話になります。

Me.DataGridView1.Columns(Me.DataGridView1.CurrentCell.ColumnIndex).HeaderText
ではないでしょうか。

[ツリー表示へ]
タイトルRe^2: DataGridViewで選択されたセルの列名を取得したい
記事No4204
投稿日: 2006/09/06(Wed) 13:11
投稿者KEN
いつもお世話になっております。

> Me.DataGridView1.Columns(Me.DataGridView1.CurrentCell.ColumnIndex).HeaderText
でセルの列名を取得することができました。

今実装したいのがDataGridViewの各列ごとに必須入力チェックをかけることです。
例)列名を指定してこの列は必須チェックをかける、かけないなど

DataGridViewのCellValueChangedイベント内にて上記のコーディングを実装したところ
「フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照
してください。エラー: オブジェクト参照がオブジェクト インスタンスに設定されていません。」
というエラーが発生して実行できません。

このイベントで処理することが間違っているのでしょうか?
別のイベントで処理することは可能なのでしょうか?

ご教授よろしくお願いいたします。

[ツリー表示へ]
タイトルRe^3: DataGridViewで選択されたセルの列名を取得したい
記事No4207
投稿日: 2006/09/06(Wed) 15:30
投稿者なおこ(・∀・)
お世話になります。

> DataGridViewのCellValueChangedイベント内にて上記のコーディングを実装したところ
> 「フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException
を参照
> してください。エラー: オブジェクト参照がオブジェクト インスタンスに設定されていませ
ん。」
> というエラーが発生して実行できません。
> このイベントで処理することが間違っているのでしょうか?
> 別のイベントで処理することは可能なのでしょうか?

実際の実装を見ないとなんとも原因はわかりませんが、
以下の情報が参考になるかもしれません。
[DataGridView.CellValidating イベント]
http://msdn2.microsoft.com/ja-JP/library/system.windows.forms.datagridview.cellvalidating.
aspx

[ツリー表示へ]
タイトルRe^4: DataGridViewで選択されたセルの列名を取得したい
記事No4209
投稿日: 2006/09/06(Wed) 16:05
投稿者KEN
いつも大変お世話になっております。

DataGridView_CellEndEditイベントで考えていたとおりの処理が実装できました。
ありがとうございました。
ソースは以下のようになりました。

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


        Select Case DataGridView.Columns(DataGridView.CurrentCell.ColumnIndex).HeaderText
            Case "FIELD1"
                '必須入力チェック
                If DataGridView.CurrentCell.Value.ToString = "" Then
                    MsgBox("未入力")
                End If
        End Select

    End Sub

[ツリー表示へ]