Pergunta

Encontrei alguns exemplos usando a API Win32 ou simulando a combinação de botões ^+ (Ctrl-+) usando SendKeys, mas pelo menos com o método SendKeys o listview pega o cursor e o define como uma ampulheta até que eu aperte o botão Iniciar do teclado.Qual é a maneira mais limpa de fazer isso?

Foi útil?

Solução

Parece uma chamada para myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent) fará o que você quiser.Eu pensaria, basta chamá-lo depois de adicionar um item.

Mais informações aqui

Outras dicas

De acordo com MSDN, se você definir a largura da coluna como -1, ela será dimensionada automaticamente para o item mais largo

percorra todas as colunas e defina a largura como -1 após adicionar o conteúdo.

Depois de adicionar a seguinte rotina ao seu código, chame-a de qualquer procedimento/função.Porém, não o use em seu procedimento "Form_Load".Chame-o apenas depois de adicionar um item ao seu ListView (ou se estiver fazendo várias adições, chame-o uma vez no final de todas as adições):

    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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top