Ширина столбца datagridview изменена
У меня есть 2 таблицы данных. Я хочу изменить ширину столбца таблицы данных, в то время как я изменяю ширину столбца другого блока данных с помощью мыши. Я попробовал этот код, но он не работает.
Private Sub DataGridView1_ColumnMinimumWidthChanged(sender As Object, e As System.Windows.Forms.DataGridViewColumnEventArgs) Handles DataGridView1.ColumnMinimumWidthChanged
HeaderGrid.Columns(e.Column.Index).Width = e.Column.Width
End Sub
Я отредактировал свой код, добавив событие mouseleave, и оно работает, но не правильно.
Private Sub DataGridView1_MouseLeave(sender As Object, e As System.EventArgs) Handles DataGridView1.MouseLeave
Dim c As DataGridViewColumn = DataGridView1.Columns(DataGridView1.CurrentCell.ColumnIndex)
Dim h As DataGridViewColumn = HeaderGrid.Columns(DataGridView1.CurrentCell.ColumnIndex)
h.Width = c.Width
End Sub
2 ответа
Решение
Я решил проблему с помощью другого события:
Private Sub DataGridView1_CellMouseLeave(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellMouseLeave
If e.ColumnIndex <> -1 And HeaderGrid.ColumnCount <> 0 Then
Dim c As DataGridViewColumn = DataGridView1.Columns(e.ColumnIndex)
Dim h As DataGridViewColumn = HeaderGrid.Columns(e.ColumnIndex)
h.Width = c.Width
End If
End Sub
Использование DataGridView1.ColumnWidthChanged
событие вместо ColumnMinimumWidthChanged
для ловли Width
изменения
Private Sub DataGridView1_ColumnWidthChanged(sender As Object,
e As DataGridViewColumnEventArgs) Handles DataGridView1.ColumnWidthChanged
HeaderGrid.Columns(e.Column.Index).Width = e.Column.Width
End Sub