Datagridview Zeile autoresize
Ich versuche automatisch anpassen und eine Zeilenhöhe und ich fand es sehr anspruchsvoll.
Ich habe schon setzen Sie diese Eigenschaft :
DataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells.
Habe ich es auch gemacht mit dieser anderen Methode:
DataGridView.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders)
Und auch Zeile für Zeile durch diese:
DataGridView.AutoResizeRow(i, DataGridViewAutoSizeRowMode.AllCells)
Und auch hardcoded die Zeilenhöhe auf einen großen Wert, und es hat nicht funktioniert!! Alle Zeilen angezeigt, die mit Ihren Standardeinstellungen den Höhen.
Keines dieser arbeitete. Ich bin running out of Optionen.
Meisten der Zeilen im datagridview nicht brauchen, um geändert werden. Aber einer von Ihnen ist gefüllt mit Werten wie diesen:
"a" + "\n" + b + "\n" + "c" + "\n" + "d" + "\n" + "e"
Ich meine, kurze Werte aber in unterschiedlichen Zeilen. Ich habe zu zeigen, Sie in verschiedenen Zeilen stehen, können nicht zeigen Sie alle zusammen.
Aber die datagridview zeigt nur die erste und alle anderen werden ausgeblendet, weil die Zeile nicht autoresize.
Jede Idee, über jede andere Art und Weise, es zu tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie rufen Sie die resize-Methode nach sich die Daten geändert haben. Aus dem MSDN-Artikel auf
DataGridView.AutoResizeRows()
:Dies bedeutet, dass Sie benötigen, rufen Sie die Methode, nach der ersten und nachfolgenden laden des Gitters. Wenn Sie diese aufrufen-code innerhalb des übergeordneten Formulars controller, databinding noch nicht geschehen, so werden die Daten nicht da.
Für das erste laden über den
DataBindingComplete
Veranstaltung:Für spätere updates auf Zellen aus, die Sie benötigen zu finden, der beste Ort selbst.
Ich habe die Lösung gefunden für dieses problem.
Statt zu arbeiten, mit der autosize-Eigenschaften des Rasters oder die Zeilen, ich hätte den wrapmode, um angewendet werden, um alle grid-Zellen.
DataGridView.DefaultCellStyle.WrapMode = DataGridViewTriState.True
Dies gilt für alle Zellen und es funktioniert.
Was Sie versuchen, wird nicht funktionieren.
Sie müssen AutoSizeMode auf "none", ändern Sie die Breite der Spalte.
Es funktioniert sogar noch besser, wenn Sie die Spalten Händisch, da ich davon ausgehe, die Sie bereits wissen, welche Spalten du haben.