DataGridViewにファイル一覧
        
        投稿者 るきお  (社会人)
        
        投稿日時 
            2011/11/6 11:47:41
        
    
    
        DataGridViewに複数のDataTableを同時に「表示」することはできません。
つまり、DataSetには複数のDataTableが含まれている可能性があるのでDataSetをDataGridViewに渡してあとは自動的に表示されるということはありません。
xvmmtnkさんの例では複数のDataTableを含むDataSetを表示しようとしています。
今回の例ではたまたまDataTableの列が一致しているので、結合して表示してくれてもいいように感じるかもしれませんが、DataSetに含まれているDataTableの列が常に一致しているとは限らず、プログラマー側で表示方法を指定しない限りVBはこれらを自動的に処理してくれません。
技術的に一番簡単な解決方法は、
①単一のDataTableのみ扱いDataGridViewにはDataTableを渡すか、
②表示するDataTableを指定する
方法です。
私は構造的にシンプルな①をお勧めします。
①の例
 
 
 
 
②の例
 
 
 
 
    
つまり、DataSetには複数のDataTableが含まれている可能性があるのでDataSetをDataGridViewに渡してあとは自動的に表示されるということはありません。
xvmmtnkさんの例では複数のDataTableを含むDataSetを表示しようとしています。
今回の例ではたまたまDataTableの列が一致しているので、結合して表示してくれてもいいように感じるかもしれませんが、DataSetに含まれているDataTableの列が常に一致しているとは限らず、プログラマー側で表示方法を指定しない限りVBはこれらを自動的に処理してくれません。
技術的に一番簡単な解決方法は、
①単一のDataTableのみ扱いDataGridViewにはDataTableを渡すか、
②表示するDataTableを指定する
方法です。
私は構造的にシンプルな①をお勧めします。
①の例
Dim table As New DataTable
table.Columns.Add("TEST", GetType(String))
table.Rows.Add("AAA")
table.Rows.Add("BBB")
table.Rows.Add("CCC")
DataGridView1.DataSource = table②の例
Dim dataset As New DataSet
Dim table As New DataTable("MyTable")
table.Columns.Add("TEST", GetType(String))
table.Rows.Add("AAA")
table.Rows.Add("BBB")
table.Rows.Add("CCC")
dataset.Tables.Add(table)
DataGridView1.DataMember = "MyTable"
DataGridView1.DataSource = dataset
    
        投稿者 xvmmtnk  (中学生)
        
        投稿日時 
            2011/11/6 23:04:54
        
    
    
        ありがとうございます!
実行できました!
↓実行後↓
    
    
実行できました!
Public Sub ListLoad()
        Dim files As String() = System.IO.Directory.GetFiles( _
    Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Bvets\Scenarios", "*.txt", System.IO.SearchOption.TopDirectoryOnly)
        Dim table As New DataTable
        Dim dataClumn1 As DataColumn = table.Columns.Add("画像", GetType(Image))
        Dim dataClumn2 As DataColumn = table.Columns.Add("路線名")
        Dim dataClumn3 As DataColumn = table.Columns.Add("製作")
        Dim dataClumn4 As DataColumn = table.Columns.Add("説明")
        Dim dataClumn5 As DataColumn = table.Columns.Add("ファイル名")
        For i = 0 To files.Length - 1
            Dim sr As New System.IO.StreamReader(files(i), _
    System.Text.Encoding.GetEncoding("shift_jis"))
            Dim r_image As String = ""
            Dim r_title As String = ""
            Dim r_author As String = ""
            Dim r_comment As String = ""
            '内容を一行ずつて読み込む 
            While sr.Peek() > -1
                Dim rs As String = sr.ReadLine()
                If rs.Contains("Image = ") Then
                    r_image = rs.Replace("Image = ", Nothing).ToString
                ElseIf rs.Contains("RouteTitle = ") Then
                    r_title = rs.Replace("RouteTitle = ", Nothing).ToString
                ElseIf rs.Contains("Author = ") Then
                    r_author = rs.Replace("Author = ", Nothing).ToString
                ElseIf rs.Contains("Comment = ") Then
                    r_comment = rs.Replace("Comment = ", Nothing).ToString
                End If
            End While
            '閉じる 
            sr.Close()
            Dim imgFl As String = (Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Bvets\Scenarios\" & r_image)
            Dim a_image As Image
            If File.Exists(imgFl) Then
                a_image = New Bitmap(Image.FromFile(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Bvets\Scenarios\" & r_image), 120, 90)
            Else
                a_image = New Bitmap(My.Resources.noimage, 120, 90)
            End If
            table.Rows.Add(a_image, r_title, r_author, r_comment, files(i).ToString)
        Next i
        DataGridView1.DataSource = table
    End Sub
↓実行後↓
どうすれば、一覧を追加できますか?