【发布时间】:2017-01-15 08:40:45
【问题描述】:
我有一个带有 DataGridView 的 VB.Net 表单,我希望在其中在详细视图和一般视图之间进行切换。
DataGridView 显示地点之间的距离和估计时间 - 称为 Route Leg Data 并被称为 General View
我已经实现了一个复选框来在一般视图和详细视图之间进行选择。当 CheckBox 被选中时,我试图遍历所有 Route Leg 条目并插入 Route Steps,这是有关 Leg 条目的详细信息。
我尝试了各种循环选项:For..Next、For Each...Next、While...End While,并且只有第一行(Route Leg)得到处理,即使我还有 5 个 Route Leg 条目.
Important: Keep in mind that when the Detail View is selected, the DataGridView row count increments for every new Route Step entry that gets inserted.
我尝试同时使用 dgv.RowCount 和 dgv.Rows.Count 但我一直得到相同的结果。
我添加了一些代码来显示我想要实现的目标。任何帮助或指导将不胜感激。
'Show / Hide Route Step Data
Private Sub chkShowRouteStep_CheckedChanged(sender As Object, e As EventArgs) Handles chkShowRouteStep.CheckedChanged
Try
If chkShowRouteStep.Checked Then
'Show Route Steps
For i As Integer = 0 To dgvQuote.RowCount - 1
txtRowCount.Text = i
If dgvQuote.Rows(i).Cells(0).Value.ToString <> "" Then
For j As Integer = 1 To 5
i += 1
dgvQuote.Rows.Insert(i, "Step")
'dgvQuote.Rows.Insert(j + i, "Step")
Next
End If
Next
Else
'Hide Route Steps - WORKS GREAT
For i As Integer = dgvQuote.RowCount - 1 To 0 Step -1
If dgvQuote.Rows(i).Cells(0).Value.ToString = "Step" Then
dgvQuote.Rows.RemoveAt(i)
End If
Next
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
【问题讨论】:
标签: vb.net winforms datagridview