Как я могу программно изменить размер столбцов ListView?

StackOverflow https://stackoverflow.com/questions/57584

Вопрос

Я нашел несколько примеров использования 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top