Как я могу программно изменить размер столбцов ListView?
-
09-06-2019 - |
Вопрос
Я нашел несколько примеров использования API Win32 или имитации комбинации кнопок ^+ (Ctrl-+) с помощью SendKeys, но, по крайней мере, с помощью метода SendKeys представление списка захватывает курсор и устанавливает его в виде песочных часов, пока я не нажму кнопку «Пуск» на клавиатуре.Какой самый чистый способ сделать это?
Решение
Похоже на звонок myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
сделаю то, что ты хочешь.Я бы подумал, просто позвоните после добавления элемента.
Больше информации здесь
Другие советы
В соответствии с MSDN, если вы установите ширину столбца на -1, он будет автоматически изменен до самого широкого элемента.
прокрутите все столбцы и установите ширину -1 после добавления содержимого.
После добавления следующей процедуры в свой код вызовите ее из любой процедуры/функции.Однако не используйте его в процедуре «Form_Load».Вызывайте его только после того, как вы добавили элемент в свой ListView (или, если вы делаете несколько добавлений, вызывайте его один раз в конце всех добавлений):
Private Sub AutoSizeListViewColumns(oListView As ListView)
Dim nCol As Integer = 0
SuspendLayout()
For nCol = 0 To (oListView.Columns.Count - 1)
oListView.Columns(nCol).Width = -1 'forces autosizing on column
Next
oListView.Refresh()
ResumeLayout()
End Sub