当我运行代码时,使用 csv 日志文件中的数据填充数组,DataGridView 填充空行。
我尝试只使用 2 维数组,我得到了相同的结果。 我怀疑我需要以某种方式"映射"数据......或?
这是我目前正在尝试的:
第一部分位于模块...中,即表单代码中的子
Public Structure DataBlock
Public Data As String()
Public Property xData As String()
Get
Return Data
End Get
Set(ByVal value As String())
Data = value
End Set
End Property
End Structure
Public DataBlocks(1) As DataBlock
' end of module code
' start of form code
Public Sub test(path)
Dim i As Integer
LogData = IO.File.ReadAllLines(path)
ReDim DataBlocks(UBound(LogData))
For i = 0 To UBound(LogData)
DataBlocks(i) = New DataBlock With {.xData = Split(LogData(i), ",")}
Next
DataGridView1.DataSource = DataBlocks
End Sub
我期待填充表,我看到了其他有效的示例,但这些示例不使用结构中带有数组的结构化数组。 我可以将数组分解为 8 个部分(这是我对文件的列数(,但我还不愿意分离。
嗯
,这有点笨拙,但它有效。我将结构更改为类。似乎 DataGridView 无法将数组作为列类型处理,因此我将数组更改为字符串以进行显示。
Public Class DataBlock
Private Data As String()
Public ReadOnly Property xDataOut As String
Get
Return String.Join(", ", Data)
End Get
End Property
Public WriteOnly Property xDataIn As String()
Set(value As String())
Data = value
End Set
End Property
Public Sub New(sArray As String())
xDataIn = sArray
End Sub
End Class
Public DataBlocks As New List(Of DataBlock)
Public Sub test(path As String)
Dim Lines = IO.File.ReadAllLines(path)
For Each line In Lines
DataBlocks.Add(New DataBlock(line.Split(","c)))
Next
DataGridView1.DataSource = DataBlocks
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
test("LogData.txt")
End Sub