Im используя следующий код, чтобы сохранить свою DataGridView таблицу в текстовый файл:Сохранить DataGridView в CSV без изменения фокуса
Dim rows = From row As DataGridViewRow In DataGridView1.Rows.Cast(Of DataGridViewRow)() _
Where Not row.IsNewRow _
Select Array.ConvertAll(row.Cells.Cast(Of DataGridViewCell).ToArray, Function(c) If(c.Value IsNot Nothing, c.Value.ToString, ""))
Using sw As New IO.StreamWriter("Z:\\SchData.txt")
For Each r In rows
sw.WriteLine(String.Join(";", r))
Next
End Using
И следующее, чтобы обновить таблицу:
While 1 = 1
Try
DataGridView1.Rows.Clear()
Using stream As System.IO.FileStream = System.IO.File.OpenRead("Z:\\SchData.txt")
Using reader As New System.IO.StreamReader(stream)
Dim line As String = reader.ReadLine()
While (line IsNot Nothing)
Dim columns = line.Split(";")
line = reader.ReadLine()
Dim index = Me.DataGridView1.Rows.Add()
Me.DataGridView1.Rows(index).SetValues(columns)
End While
End Using
End Using
Button107.Enabled = True
Button88.Enabled = True
updatingSch = False
Return
Catch ex As Exception
Threading.Thread.Sleep(50)
End Try
End While
Обе функции вызываются при изменении значения в таблице. Проблема заключается в том, что вместо перехода в следующую ячейку (либо когда я перехожу, либо перейду вниз, либо щелкнув другую ячейку), она быстро переключит фокус на правильную ячейку, а затем быстро переключится на верхнюю левую ячейку (строка 0, столбец 0). Как я могу остановить его от изменения фокуса?
В то время как 1 = 1, я надеюсь, что тип ... – Codexer