Эй, я пытаюсь изменить индекс столбца моего dvg, когда я меняю Displayindex, используя свойство Allowusertoordercolumns, но когда я перемещаю столбцы, я не могу заставить его изменить индекс столбца.
Я получаю сообщение об ошибке, в котором говорится, что индекс столбца доступен только для чтения. Вот что у меня есть до сих пор
Private Sub DataGridView1_ColumnDisplayIndexChanged(sender As Object, e As DataGridViewColumnEventArgs) _
Handles DataGridView1.ColumnDisplayIndexChanged
Dim messageBoxVB As New System.Text.StringBuilder()
messageBoxVB.AppendFormat("{0} = {1}", "Column", e.Column)
messageBoxVB.AppendLine()
' MessageBox.Show(messageBoxVB.ToString(), "ColumnDisplayIndexChanged Event")
If DataGridView1.Columns(e.Column.Name).Index <> e.Column.DisplayIndex Then
DataGridView1.Columns(e.Column.Name).Index = (e.Column.DisplayIndex)
End If
'DataGridView1 = DataGridView1
End Sub
КНОПКА
Это то, что я получил с помощью кнопки сопоставления, ничего из того, что я хочу сейчас
Dim nbColumnsToTransfer As Integer = DataGridView2.Columns.GetColumnCount(1)
Dim indexes As List(Of Integer) = (From column As DataGridViewColumn In DataGridView1.Columns.Cast(Of DataGridViewColumn)() _
Take nbColumnsToTransfer _
Order By column.DisplayIndex _
Select column.Index).ToList()
For c As Integer = 0 To DataGridView1.Rows.Count - 2
Dim RNUM1 = (DataGridView1.Rows(c).Cells(indexes(0)).Value)
Dim RNUM2 = (DataGridView1.Rows(c).Cells(indexes(1)).Value)
If chkContactSplitReq.Checked = True Then
If IsDBNull(DataGridView1.Rows(c).Cells(indexes(2)).Value) Then
Dim RNUM3 As String = ""
Dim RNUM4 As String = ""
Dim RNUM5 = (DataGridView1.Rows(c).Cells(indexes(5)).Value)
Dim RNUM6 = (DataGridView1.Rows(c).Cells(indexes(6)).Value)
Dim RNUM7 = (DataGridView1.Rows(c).Cells(indexes(7)).Value)
DataGridView2.Rows.Add(RNUM1, RNUM2, RNUM3, RNUM4, RNUM5, RNUM6, RNUM7)
Else
Dim tempString As String = (DataGridView1.Rows(c).Cells(indexes(2)).Value)
Dim Split() As String = tempString.Split(" "c)
Dim RNUM3 As String = Split(0)
If Split.Length > 1 Then
Dim RNUM4 As String = Split(1)
Dim RNUM5 = (DataGridView1.Rows(c).Cells(indexes(4)).Value)
Dim RNUM6 = (DataGridView1.Rows(c).Cells(indexes(5)).Value)
Dim RNUM7 = (DataGridView1.Rows(c).Cells(indexes(6)).Value)
DataGridView2.Rows.Add(RNUM1, RNUM2, RNUM3, RNUM4, RNUM5, RNUM6, RNUM7)
Else
Dim RNUM4 As String = ""
Dim RNUM5 = (DataGridView1.Rows(c).Cells(indexes(4)).Value)
Dim RNUM6 = (DataGridView1.Rows(c).Cells(indexes(5)).Value)
Dim RNUM7 = (DataGridView1.Rows(c).Cells(indexes(6)).Value)
DataGridView2.Rows.Add(RNUM1, RNUM2, RNUM3, RNUM4, RNUM5, RNUM6, RNUM7)
End If
End If
Else
Dim RNUM3 = (DataGridView1.Rows(c).Cells(indexes(2)).Value)
Dim RNUM4 = (DataGridView1.Rows(c).Cells(indexes(3)).Value)
Dim RNUM5 = (DataGridView1.Rows(c).Cells(indexes(4)).Value)
Dim RNUM6 = (DataGridView1.Rows(c).Cells(indexes(5)).Value)
Dim RNUM7 = (DataGridView1.Rows(c).Cells(indexes(6)).Value)
DataGridView2.Rows.Add(RNUM1, RNUM2, RNUM3, RNUM4, RNUM5, RNUM6, RNUM7)
End If