Сохраните выбранную строку в текстовый файл и загрузите
Привет!
Так что ... пожалуйста, помогите :D Я пытаюсь уже два дня, но безрезультатно.
У меня есть DataGridView с ComboBox в качестве первого столбца. Это выглядит примерно так:
Статус | имя | номер | etc..
(комбинированный список) Джон 000000
(комбинированный список) Билли 111111
и т.д..
Значения загружаются кнопкой из текстового файла, с "," за каждым значением, как в файле .csv. Значения combobox-нет контакта, занято. Я установил режим выбора DataGridView в row. Таким образом, мне не нужно выбирать каждую ячейку, мне просто нужна вся строка. Теперь я пытаюсь сделать так, чтобы после клика на for e.g.John вся строка сохранялась в текстовый файл - он должен выглядеть так:
2,Джон,000000,...,...,...
Далее, после нажатия на Билли, текстовый файл выглядит так:
2,Джон,000000,...,...,...
1,Билли,111111,...,...
Где значение 1 - "Нет контакта", а 2 - "занято".
Затем я хочу сделать кнопку загрузки для чтения значений из текстового файла, который я сохранил, и поместить это в DataGridView. e.g:
Текстовый файл:
2,Джон,000000,...,...,...
1,Билли,111111,...,...
Нажмите кнопку Загрузить: DataGridView
2,Джон,000000,...,...,... > занят,Джон,000000,...,...
1,Билли,111111,...,... > Нет контакта,Билли,111111,...,...
Это то, что у меня уже есть:
Public Class Start Dim dataTable As New DataTable Dim cmenu As New DataGridViewComboBoxColumn() Private Sub IconButton2_Click(sender As Object, e As EventArgs) Handles IconButton2.Click Dim thereader As New IO.StreamReader("HEHE\Desktop\data\data.txt", System.Text.Encoding.Default) Dim sline As String = "" Do sline = thereader.ReadLine If sline Is Nothing Then Exit Do Dim thecolumns() As String = sline.Split(",") Dim newrow As DataRow = dataTable.NewRow newrow("Name") = thecolumns(0) newrow("LastName") = thecolumns(1) newrow("Number") = thecolumns(2) newrow("Address") = thecolumns(3) newrow("Age") = thecolumns(4) newrow("E-mail") = thecolumns(5) dataTable.Rows.Add(newrow) Loop thereader.Close() clients.DataSource = dataTable clients.Columns(3).CellTemplate.Style.ForeColor = RGBColors.color7 clients.Columns(3).CellTemplate.Style.Font = New Font(clients.DefaultCellStyle.Font, FontStyle.Bold) clients.Columns("Address").Width = 200 clients.Columns("E-mail").Width = 200 clients.Columns("Age").Width = 70 clients.Columns("Name").ReadOnly = True clients.Columns("LastName").ReadOnly = True clients.Columns("Number").ReadOnly = True clients.Columns("Address").ReadOnly = True clients.Columns("Age").ReadOnly = True clients.Columns("E-mail").ReadOnly = True Me.Text = dataTable.Rows.Count & "rows" IconButton2.Enabled = False End Sub Private Sub Start_Load(sender As Object, e As EventArgs) Handles MyBase.Load With dataTable .Columns.Add("Name", System.Type.GetType("System.String")) .Columns.Add("LastName", System.Type.GetType("System.String")) .Columns.Add("Number", System.Type.GetType("System.Decimal")) .Columns.Add("Address", System.Type.GetType("System.String")) .Columns.Add("Age", System.Type.GetType("System.Decimal")) .Columns.Add("E-mail", System.Type.GetType("System.String")) End With clients.BackgroundColor = RGBColors.color4 clients.Columns.Add(cmenu) cmenu.HeaderText = "Status" cmenu.Name = "cmb" cmenu.MaxDropDownItems = 4 cmenu.Items.Add("Brak kontaktu") cmenu.Items.Add("Oddzwonienie") cmenu.ReadOnly = False End Sub End Class
Что я уже пробовал:
Dim swWriter As New IO.StreamWriter("HEHE\Desktop\data\data.txt") Dim LineToWrite As String = String.Empty Try For _Row As Integer = 0 To clients.Rows.Count - 1 LineToWrite = String.Empty For _Column As Integer = 0 To clients.Columns.Count - 1 LineToWrite &= "," & clients.Rows(_Row).Cells(_Column).Value.ToString Next LineToWrite = LineToWrite.Remove(0, 1) swWriter.WriteLine(LineToWrite) Next swWriter.Flush() swWriter.Close() MessageBox.Show("Data Saved Successfully") Catch ex As Exception