Hallo zusammen.
Ich lasse mir in meiner Anwendung ListViews füllen und stelle unter anderem die Spaltenbreite über den Code ein.
Jetzt hab' ich mich ein wenig belesen und weiß nun, dass mit
übernommen wird.
Auf dem einen ListView klappt das auch wie gewünscht, bei dem anderen schießt er mir eine Spalte dazwischen die ewig breit wird - obwohl es laut Code nicht so sein soll.
Die ListView's sind in den Eigenschaften gleichermaßen eingestellt - was mach' ich denn hier falsch?
Funktioniert:
Spoiler anzeigen
Funktioniert nicht:
Spoiler anzeigen
Ich lasse mir in meiner Anwendung ListViews füllen und stelle unter anderem die Spaltenbreite über den Code ein.
Jetzt hab' ich mich ein wenig belesen und weiß nun, dass mit
-2
die Breite des Headertextes und mit -1
die breite des "breitesten Items" als Spaltenbreiteübernommen wird.
Auf dem einen ListView klappt das auch wie gewünscht, bei dem anderen schießt er mir eine Spalte dazwischen die ewig breit wird - obwohl es laut Code nicht so sein soll.
Die ListView's sind in den Eigenschaften gleichermaßen eingestellt - was mach' ich denn hier falsch?
Funktioniert:
VB.NET-Quellcode
- Private Sub PlanHeaderMonate(Monatsnummer As Integer, lvMonat As Windows.Forms.ListView)
- Dim sDate As Date = MonatsAnfang(Monatsnummer, My.Settings.JahrPlaner)
- Dim eDate As Date = MonatsEnde(Monatsnummer, My.Settings.JahrPlaner)
- With lvMonat
- .View = View.Details
- .GridLines = True
- .Scrollable = True
- .FullRowSelect = True
- .Items.Clear()
- .Columns.Clear()
- .Columns.Add("Mitarbeiter", -1) '170)
- .Columns.Add("Gesellschaft", -2) '170)
- .Columns.Add("Standort", -1) '120)
- .Columns.Add("Abteilung", -2) '120)
- .Columns.Add("Urlaub", -2) '100)
- .Columns.Add("Krank", -2) '100)
- End With
- Dim loopDate As Date = sDate
- Do While loopDate < eDate.AddDays(1)
- lvMonat.Columns.Add($"{loopDate.Day} {loopDate.ToString("ddd")}", -2, HorizontalAlignment.Center).Name = loopDate.ToShortDateString
- loopDate = loopDate.AddDays(1)
- Loop
- lvMonat.Columns.Add("", -2) 'Pseudo-Spalte, damit letzte Spalte nicht an Fensterbreite angepasst wird
- filteredMonate(lvMonat, Monatsnummer)
- End Sub
Funktioniert nicht:
VB.NET-Quellcode
- Private Sub PlanHeaderMitarbeiter()
- With lvMitarbeiter
- .View = View.Details
- .GridLines = True
- .Scrollable = True
- .FullRowSelect = True
- .Items.Clear()
- .Columns.Clear()
- .Columns.Add("Mitarbeiter", -1)
- .Columns.Add("Gesellschaft", -1)
- .Columns.Add("Standort", -1)
- .Columns.Add("Abteilung", -2)
- .Columns.Add("Urlaubsanspruch", -2) '130)
- .Columns.Add("Urlaub verplant", -2) '130)
- .Columns.Add("Urlaub unverplant", -2) '130)
- .Columns.Add("Krank", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("Januar", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("Februar", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("März", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("April", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("Mai", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("Juni", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("Juli", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("August", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("September", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("Oktober", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("November", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("Dezember", -2, HorizontalAlignment.Center) '100)
- .Columns.Add("", -2) 'Pseudo-Spalte, damit letzte Spalte nicht an Fensterbreite angepasst wird
- End With
- filteredMitarbeiter()
- End Sub
"Na, wie ist das Wetter bei dir?"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"