Vb.net 添加/删除后Datagridview自动重新排序

Vb.net 添加/删除后Datagridview自动重新排序,vb.net,datagridview,add,datagridviewcolumn,Vb.net,Datagridview,Add,Datagridviewcolumn,我使用vb.net datagridview表来显示几种不同类型的数据。当我需要加载新数据时,我先删除行,然后删除当前数据的列,然后添加新数据的列和行。但是,当我重新加载以前显示过的数据(已删除,现在已重新添加)时,列的顺序不同,例如,加载时顺序是col1,然后是col2(这是我想要的顺序),删除并添加后是col2,然后是col1。下面是代码示例: Dim mycol1 As New DataGridViewTextBoxColumn Dim mycol2 As New DataGridView

我使用vb.net datagridview表来显示几种不同类型的数据。当我需要加载新数据时,我先删除行,然后删除当前数据的列,然后添加新数据的列和行。但是,当我重新加载以前显示过的数据(已删除,现在已重新添加)时,列的顺序不同,例如,加载时顺序是col1,然后是col2(这是我想要的顺序),删除并添加后是col2,然后是col1。下面是代码示例:

Dim mycol1 As New DataGridViewTextBoxColumn
Dim mycol2 As New DataGridViewTextBoxColumn

    With mycol1
        .Name = "col1"
        .HeaderText = "col1"
        .SortMode = DataGridViewColumnSortMode.NotSortable
        .MaxInputLength = 4
        .DisplayIndex = 0
    End With

    With mycol2
        .Name = "col2"
        .HeaderText = "col2"
        .SortMode = DataGridViewColumnSortMode.NotSortable
        .MaxInputLength =
        .DisplayIndex = 1
    End With

Private Sub form1_Load(sender As Object, e As EventArgs)

dgv.Columns.Add(col1)
dgv.Columns.Add(col2)
   a = 0
   Do While a < 10
   dgv.Rows.Add()
   a += 1
Loop

End Sub

Private Sub button1_click(sender As Object, e As EventArgs)
   a = 0
   Do While a < me.dgv.rows.count
   dgv.Rows.remove()
   a += 1
Loop

dgv.Columns.remove(col1)
dgv.Columns.remove(col2)

End Sub

Private Sub button2_click(sender As Object, e As EventArgs)
dgv.Columns.Add(col1)
dgv.Columns.Add(col2)
a = 0
   Do While a < 10
   dgv.Rows.Add()
   a += 1
Loop

End Sub
1作为新的DataGridViewTextBoxColumn
将myCL2设置为新的DataGridViewTextBoxColumn
用MyCL1
.Name=“col1”
.HeaderText=“col1”
.SortMode=DataGridViewColumnSortMode.NotSortable
.MaxInputLength=4
.DisplayIndex=0
以
用myCL2
.Name=“col2”
.HeaderText=“col2”
.SortMode=DataGridViewColumnSortMode.NotSortable
.MaxInputLength=
.DisplayIndex=1
以
私有子表单1_加载(发送方作为对象,e作为事件参数)
dgv.Columns.Add(第1列)
dgv.Columns.Add(col2)
a=0
做一个<10的动作
dgv.Rows.Add()
a+=1
环
端接头
私有子按钮1\u单击(发送者作为对象,e作为事件参数)
a=0
做一次

有人知道是什么导致了重新排序吗?

虽然col1有.DisplayIndex=0,但我认为以前显示col2是非常奇怪的。。和其他用于删除不需要的行和列的IDEA。。etc只需使用:dgv.Rows.Clear()。。。。和dgv.Columns.Clear()感谢Cristi的回复。我发现索引仍然正确,只是displayindex不正确,我认为这与我删除列的顺序有关,例如,如果我先删除col1,col2现在是显示索引1,当它重新加载时,col2保持为displayindex1。在重新加载时,我现在添加了重新分配显示索引的代码,它似乎正在工作。至于您对rows.clear()和columns.clear()的建议,这已经变得非常方便,并且牺牲了我的许多代码,谢谢您的建议。欢迎:)点击箭头^:)