所以我必须在数据网格视图中设置一些默认值,为此我使用以下代码,它正在工作,但我想知道我是否可以使代码更短。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
WindowState = FormWindowState.Maximized
'default values for diameterdata
With DataDiameters
.Rows.Add(6)
.Rows(0).Cells(0).Value = "DN20"
.Rows(0).Cells(1).Value = "21,7"
.Rows(1).Cells(0).Value = "DN25"
.Rows(1).Cells(1).Value = "28,5"
.Rows(2).Cells(0).Value = "DN32"
.Rows(2).Cells(1).Value = "37,2"
.Rows(3).Cells(0).Value = "DN40"
.Rows(3).Cells(1).Value = "43,1"
.Rows(4).Cells(0).Value = "DN50"
.Rows(4).Cells(1).Value = "54,4"
.Rows(5).Cells(0).Value = "DN65"
.Rows(5).Cells(1).Value = "70,3"
.Rows(6).Cells(0).Value = "DN80"
.Rows(6).Cells(1).Value = "82,5"
.Rows(7).Cells(0).Value = "DN100"
.Rows(7).Cells(1).Value = "107,1"
End With
End Sub
With DataDiameters
.Rows.Add({"DN20", 21.7})
etc
End With
或者像这样,如果你想把所有东西都保留为字符串
With DataDiameters
.Rows.Add({"DN20", "21,7"})
etc
End With
你会发现更容易使用网格视图,如果你用这样的实际代码制作你的网格。
Dim arrayColumn(2) As String
With DataDiameters
.Columns.Add("DNmaat", "DN maat")
.Columns.Add("InnerDiameter", "Inner Diameter")
.Rows.Add({"DN20", 21.7})
' arraycolumn(0)="DN20"
' arraycolumn(1)="21,7"
' or like this .Rows.Add(arrayColumn)
'This will let you dynamically change everything at runtime
End With
从长远来看,由于网格不是硬编码的,因此您可以在运行时更改所有内容。
创建一个包含所有元素的数组。然后,循环遍历 DataGridView 单元格并设置数组中包含的值。
Dim arrayItems() As String = {"DN20", "21,7", "DN25", "DN32", "37,2", "DN40", ......}
Dim indexArray As Integer = 0
For i = 0 To 7
For j = 0 To 1
DataGridView1.Rows(i).Cells(j).Value = arrayItems(indexArray)
indexArray += 1
Next
Next