Я полностью новичок в VB.net и получил задание на домашнюю работу. Мне нужно уметь читать определенные строки и отображать их в DataGridView. Мне удалось связать мой .txt-файл с DGV, однако он читает весь файл в отличие от конкретной строки. У меня есть 4 кнопки: btn1, btn2, btn3, btn4.Отображение данных из TXT-файла в отдельных строках в DataGridView
Я добавил новую кнопку в форму, которая загружает данные из текстового файла, анализирует его на datatable и устанавливает DataGridView1.DataSource в этот DataTable. Второй метод создает новый datatable и импортирует указанную строку из основного файла данных и показывает его в DGV.
мне нужно, чтобы иметь возможность нажать btn1 и есть данные, отображаемые в DGV и если btn2 нажата после эти данные будут отображаться в строке под ним и т.д.
Любая помощь будет принята с благодарностью.
Private txtDataTable As DataTable
Private Sub loadFileBtn_Click(sender As Object, e As EventArgs) Handles
loadFileBtn.Click
txtDataTable = New DataTable("txtContents")
Dim txtContents As String()
Try
txtContents = IO.File.ReadAllLines("database.txt")
Catch ex As Exception
MsgBox(ex.Message)
Return
End Try
Dim txtLines As New List(Of String())
txtContents.ToList().ForEach(Sub(x) txtLines.Add(x.Split(CChar(vbTab))))
If txtLines.Count > 0 Then
txtLines.Item(0).ToList.ForEach(Sub(x) txtDataTable.Columns.Add(New DataColumn(x.ToString)))
txtLines.RemoveAt(0)
End If
If txtLines.Count > 0 Then
txtLines.ToList.ForEach(Sub(x) txtDataTable.Rows.Add(x.ToArray))
End If
DataGridView1.DataSource = txtDataTable
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn1.Click,
btn2.Click, btn3.Click, btn4.Click
If txtDataTable Is Nothing Then Return
Dim rowIndex As Integer
If Integer.TryParse(DirectCast(sender, Button).Name.Replace("btn", String.Empty), rowIndex) Then
rowIndex -= 1
Else
Return
End If
Dim TempTable As DataTable = txtDataTable.Clone
If rowIndex < txtDataTable.Rows.Count Then
TempTable.ImportRow(txtDataTable.Rows(rowIndex))
End If
DataGridView1.DataSource = TempTable
End Sub