DGV - Größenanpassung funktioniert nicht

05/08/2009 - 05:16 von Uwe Gabbert | Report spam
Hallo,

ich erzeuge mehrere DGV's, welche mit Daten gefüllt werden. ->
funktioniert
Dann formatiere ich die Zellen (Farbe, Schreibschutz, Zeilenumbruch) ->
funktioniert

Aber die Anpassung der Zeilenbreiten und Höhen funktionieren nicht.
Die Breite und Höhe der Zellen werden nicht automatisch angepasst,
sondern bleiben auf dem Standard (ca. 100 breit). Auch werden Zellen,
in denen ein Zeilenumbruch erfolgt, nicht höher dargestellt, so dass
die 2. Zeile nicht zu lesen ist.

Wo liegt mein Fehler?

[code]
Dim tp As New TabPage
With tp
' .Name = "tp" & g.ToString
.Text = g.ToString
tbcArtikel.TabPages.Add(tp)

Dim dgv As New DataGridView
tp.Controls.Add(dgv)
With dgv
.Update()
'.Name = "dgv" & g.ToString
.Margin = New Padding(5)
'.Width = 570
.Height = Parent.Height
.AutoSize = True
.DataSource =
_al.ArtikelNachGruppen(g.ToString)
.AutoResizeColumns( _
DataGridViewAutoSizeColumnsMode.AllCells)

.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells)
With .Columns("Bezeichnung")
.ReadOnly = True
.DefaultCellStyle.BackColor =
Color.LightYellow
.DefaultCellStyle.WrapMode = _
DataGridViewTriState.True
' .Width = 500
End With

With .Columns("Preis")
' .Width = 60
.DefaultCellStyle.Alignment = _
DataGridViewContentAlignment.MiddleRight
.DefaultCellStyle.Format = "c"
End With
.Columns("Artikelnummer").Visible = False
.Columns("Einheit").Visible = False
.Columns("berechnen").Visible = False
.Columns("MwSt").Visible = False
.Columns("Gruppe").Visible = False
.Refresh()
End With
End With
[/code]
 

Lesen sie die antworten

#1 Peter Götz
05/08/2009 - 09:09 | Warnen spam
Hallo Uwe,

ich erzeuge mehrere DGV's, welche mit Daten gefüllt werden. ->
funktioniert
Dann formatiere ich die Zellen (Farbe, Schreibschutz,
Zeilenumbruch) -> funktioniert

Aber die Anpassung der Zeilenbreiten und Höhen
funktionieren nicht.
Die Breite und Höhe der Zellen werden nicht automatisch
angepasst, sondern bleiben auf dem Standard (ca. 100 breit).
Auch werden Zellen, in denen ein Zeilenumbruch erfolgt, nicht
höher dargestellt, so dass die 2. Zeile nicht zu lesen ist.



Schau Dir mal

www.gssg.de -> Visual Basic -> VB.net
-> DataGridView word wrap

an. Bei diesem Beispiel wird die Zeilenhöhe automatisch
an den jeweils eingegebenen Text (mit Zeilenumbruch)
schon bei der Eingabe angepasst.

Ein weiteres Beispiel

www.gssg.de -> Bisual Basic -> VB.net
DataGridView AutoResize



zeigt ebenfalls das Anpassen der Zeilenhöhen und
Spaltenbreiten.


Wo liegt mein Fehler?

[code]
Dim tp As New TabPage
With tp
' .Name = "tp" & g.ToString
.Text = g.ToString
tbcArtikel.TabPages.Add(tp)

Dim dgv As New DataGridView
tp.Controls.Add(dgv)
With dgv
.Update()
'.Name = "dgv" & g.ToString
.Margin = New Padding(5)
'.Width = 570
.Height = Parent.Height
.AutoSize = True
.DataSource > _al.ArtikelNachGruppen(g.ToString)
.AutoResizeColumns( _
DataGridViewAutoSizeColumnsMode.AllCells)

.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells)
With .Columns("Bezeichnung")
.ReadOnly = True
.DefaultCellStyle.BackColor > Color.LightYellow
.DefaultCellStyle.WrapMode = _
DataGridViewTriState.True
' .Width = 500
End With

With .Columns("Preis")
' .Width = 60
.DefaultCellStyle.Alignment = _
DataGridViewContentAlignment.MiddleRight
.DefaultCellStyle.Format = "c"
End With
.Columns("Artikelnummer").Visible = False
.Columns("Einheit").Visible = False
.Columns("berechnen").Visible = False
.Columns("MwSt").Visible = False
.Columns("Gruppe").Visible = False
.Refresh()
End With
End With
[/code]



In Deinem Code kommt weder

DataGridView.AutoResize.Column
DataGridView.AutoResizeColumns

noch

DataGridView.AutoresizeRow
DataGridView.AutoResizeRows

vor, um Spaltenbreiten oder Zeilenhöhen autom. an den
Text anzupassen.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen