vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift 
Autor: Danny Grobe
Datum: 21.04.16 10:53

Hier unser Quellcode für das Problem:

' wenn keine Spalte angebeben, werden die Spalten anhand ihres Inhaltes und der 
' Überschrift angepasst
' wenn eine Spalte oder mehrere (durch Komma getrennt) übergeben werden, dann 
' wird der verbleibende
'   Platz auf diese Spalten aufgeteilt; alle anderen Spalten bleiben unverändert
Public Sub sevGridSpaltenbreiteAnGridAnpassen(ByVal Grid As sevGrid, Optional _
  ByVal Spalte, _
                                              Optional ByVal _
                                              MindestSpaltenbreite As Long = _
                                              1000, _
                                              Optional ByVal _
                                              ZeilenFürSpaltenbreitenanpassung _
                                              As Integer = 30)
   Dim w As Long
   Dim i As Integer
   Dim j As Integer
   Dim Spaltenanzahl As Integer
   Dim Spalten() As String
   Dim Breite As Long
   Dim Key
   w = 0
 
   Grid.LockUpdate True
 
   If Not IsMissing(Spalte) Then
      Spalten = Split(Spalte, ",")
      Spaltenanzahl = UBound(Spalten) + 1
 
      For i = 1 To Grid.Cols
         If Grid.Columns(i).visible Then
            w = w + Grid.Columns(i).Width
         End If
      Next
 
      For Each Key In Spalten
         If Not Grid.Columns(Key) Is Nothing Then
            If Grid.Columns(Key).visible Then
               w = w - Grid.Columns(Key).Width
            Else
               Spaltenanzahl = Spaltenanzahl - 1
            End If
         End If
      Next
 
      If Grid.ScrollBars = SB_VERTICAL Or Grid.ScrollBars = SB_BOTH Or _
         (Grid.ScrollBars = SB_AUTO And Grid.Rows >= Grid.ScreenRows) Then
         w = w + 20 * Screen.TwipsPerPixelX
      Else
         w = w + 4 * Screen.TwipsPerPixelX
      End If
 
      If Grid.FixedCol Then
         w = w + Grid.FixedColCount * Grid.FixedColWidth
      End If
 
      For Each Key In Split(Spalte, ",")
         If Not Grid.Columns(Key) Is Nothing Then
            If Grid.Columns(Key).visible Then
               Breite = Int((Grid.Width - w) / Spaltenanzahl)
               If Breite < MindestSpaltenbreite Then
                  Grid.Columns(Key).Width = MindestSpaltenbreite
               Else
                  Grid.Columns(Key).Width = Breite
               End If
               w = w + Grid.Columns(Key).Width
               Spaltenanzahl = Spaltenanzahl - 1
            End If
         End If
      Next
   Else
      With Grid
         For i = 1 To .Cols
            If .Columns(i).visible Then
               On Error Resume Next
               w = Max(MindestSpaltenbreite, Grid.Parent.TextWidth(.Columns( _
                 i).Caption))
               For j = 1 To Min(.Rows, IIf(ZeilenFürSpaltenbreitenanpassung = _
               0, .Rows, ZeilenFürSpaltenbreitenanpassung))
                  w = Max(Grid.Parent.TextWidth(.Text(j, i)), w)
               Next
               On Error GoTo 0
               .Columns(i).Width = w + 10 * Screen.TwipsPerPixelX
            End If
         Next
      End With
   End If
 
   Grid.LockUpdate False
   Grid.RefreshEx
End Sub
Public Function Max(Wert1, Wert2) As Variant
   If Wert1 > Wert2 Then Max = Wert1 Else Max = Wert2
End Function
 
Public Function Min(Wert1, Wert2) As Variant
   If Wert1 > Wert2 Then min = Wert2 Else min = Wert1
End Function


Beitrag wurde zuletzt am 21.04.16 um 10:54:07 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Spaltenbreite mindestens so breit wie Spaltenüberschrift1.894JoSa07.03.16 14:33
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift1.140ModeratorDieter07.03.16 14:34
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift1.164JoSa07.03.16 14:37
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift1.112ModeratorDieter07.03.16 14:39
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift1.150Franki08.03.16 02:45
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift1.100JoSa08.03.16 07:06
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift1.057Manfred X08.03.16 14:45
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift1.076Danny Grobe21.04.16 10:53
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift1.080JoSa27.04.16 14:01
Re: Spaltenbreite mindestens so breit wie Spaltenüberschrift1.048Danny Grobe27.04.16 14:05

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel