Come posso fare un controllo ListView le colonne di auto-ridimensionamento a livello di programmazione?

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

Domanda

Ho trovato alcuni esempi di utilizzo di Win32 api o la simulazione del ^+ combinazione di tasti (ctrl-+) l'utilizzo di SendKeys, ma almeno con il metodo SendKeys listview afferra il cursore e la imposta una clessidra fino a quando ho colpito il pulsante start sulla tastiera).Che cosa è il modo più pulito per fare questo?

È stato utile?

Soluzione

Sembra una chiamata a myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent) fare ciò che si desidera.Io credo, basta chiamare dopo l'aggiunta di un elemento.

Ulteriori informazioni qui

Altri suggerimenti

Secondo MSDN, se si imposta la larghezza della colonna a -1 allora sarà autosize, per la più ampia voce

loop attraverso tutte le colonne e impostare la larghezza a -1 dopo l'aggiunta di contenuti.

Dopo aver aggiunto il seguente routine per il vostro codice di chiamata da qualsiasi procedura/funzione.Non utilizzare nel vostro "Form_Load" procedura però.Chiamare solo dopo si è aggiunto un elemento alla ListView (o se si stanno facendo più aggiunte, chiamata una sola volta, alla fine di tutte le aggiunte):

    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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top