Как я могу сделать автоматическое изменение размера столбцов ListView? - PullRequest
4 голосов
/ 12 сентября 2008

Я нашел несколько примеров использования API Win32 или имитации комбинации кнопок ^ + ( ctrl - + ) с использованием SendKeys , но по крайней мере с метод SendKeys: просмотр списка захватывает курсор и устанавливает его на песочные часы, пока я не нажму кнопку запуска на моей клавиатуре. Какой самый чистый способ сделать это?

Ответы [ 4 ]

19 голосов
/ 12 сентября 2008

Похоже, что звонок на myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent) сделает то, что вы хотите. Я думаю, просто позвоните после добавления предмета.

Подробнее здесь

1 голос
/ 12 сентября 2008

Согласно MSDN , если вы установите ширину столбца в -1, он будет автоматически изменен на самый широкий элемент

0 голосов
/ 15 января 2019

После добавления следующей процедуры в ваш код, затем вызовите ее из любой процедуры / функции. Не используйте его в своей процедуре "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
0 голосов
/ 17 июня 2013

перебирает все столбцы и устанавливает ширину -1 после добавления содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...