Come posso fare un controllo ListView le colonne di auto-ridimensionamento a livello di programmazione?
-
09-06-2019 - |
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?
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