DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridViewへの複数列の手動追加

環境/言語:[WindowsXP]
分類:[.NET]

VB.NETの超初心者です。
↓こちらのNET Tipsを参考にさせて頂き、データベースの表示をしています。
http://dobon.net/vb/dotnet/datagridview/addcolumn.html

1列だとできるのですが、複数の列の表示の仕方がわかりません。
上記サンプルコードのtextColumnをtextColumn1、textColumn2と変えていけばできるようなのですが、そのやり方が上手くできませんでした。

どなたかご教示お願いいたします。
答えそのまんま載せるとこんな感じですかね…。
※どぼん!さんのサンプルをDataGridViewのSourceをDataTable
にしてコメントを消したこと以外はそのまま流用しました

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim table As DataTable = GetData()

        For index As Integer = 1 To 3
            DataGridView1.AutoGenerateColumns = False
            DataGridView1.DataSource = table
            Dim textColumn As New DataGridViewTextBoxColumn()

            '名前の中の番号をFor文のインデックスにする
            textColumn.DataPropertyName = String.Format("Column{0}", index)
            textColumn.Name = String.Format("Column{0}", index)
            textColumn.HeaderText = String.Format("Column{0}", index)

            DataGridView1.Columns.Add(textColumn)

        Next
    End Sub

    Private Function GetData()
        Dim table As DataTable = New DataTable
        table.Columns.Add("C1")

        Return table
    End Function
End Class
カドルドエグさん、できました!
textColumn.Nameを変えていけばいいのですね。
ありがとうございました。
かなりあちこち探しても見つけられなかったので、本当に助かりました。
また、わからないことがあったら、よろしくお願いいたします。

> 答えそのまんま載せるとこんな感じですかね…。
> ※どぼん!さんのサンプルをDataGridViewのSourceをDataTable
> にしてコメントを消したこと以外はそのまま流用しました
>
> Public Class Form1
>
> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
> Dim table As DataTable = GetData()
>
> For index As Integer = 1 To 3
> DataGridView1.AutoGenerateColumns = False
> DataGridView1.DataSource = table
> Dim textColumn As New DataGridViewTextBoxColumn()
>
> '名前の中の番号をFor文のインデックスにする
> textColumn.DataPropertyName = String.Format("Column{0}", index)
> textColumn.Name = String.Format("Column{0}", index)
> textColumn.HeaderText = String.Format("Column{0}", index)
>
> DataGridView1.Columns.Add(textColumn)
>
> Next
> End Sub
>
> Private Function GetData()
> Dim table As DataTable = New DataTable
> table.Columns.Add("C1")
>
> Return table
> End Function
> End Class
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板