Thema Datum  Von Nutzer Rating
Antwort
03.11.2021 13:25:30 schlaaand
NotSolved
Blau Bei Größenänderung des Formulars die Steuerelemente "mitwandern"
03.11.2021 16:37:08 Gast51371
NotSolved
03.11.2021 16:40:24 Gast51371
NotSolved

Ansicht des Beitrags:
Von:
Gast51371
Datum:
03.11.2021 16:37:08
Views:
563
Rating: Antwort:
  Ja
Thema:
Bei Größenänderung des Formulars die Steuerelemente "mitwandern"

Da gibt es nichts fertiges. Muss man sich selber daraum kümmern.

Ganz, ganz, gaaaanz einfaches Beispiel:

Private Sub UserForm_Initialize()
  
  With Controls.Add("FORMS.TEXTBOX.1")
    .Left = 10
    .Top = 10
    .Width = Me.Width / 2 - .Left
    Call UpdateSettings(Controls(.Name))
  End With
  
  With Controls.Add("FORMS.TEXTBOX.1")
    .Left = Me.Width / 2
    .Top = 35
  End With
  
  Call UpdateSettings(Me)
  
End Sub

Private Sub UserForm_Resize()
  
  Dim objControl As MSForms.Control
  Dim vntDataUF As Variant
  Dim vntDataCTL As Variant
  
  vntDataUF = GetSettings(Me)
  
  For Each objControl In Controls
    vntDataCTL = GetSettings(objControl)
    If UBound(vntDataCTL) >= 0 Then
      objControl.Width = vntDataCTL(2) * Me.Width / vntDataUF(2)
      Call UpdateSettings(objControl)
    Else
      objControl.Left = objControl.Left + Me.Width - vntDataUF(2)
    End If
  Next
  
  Call UpdateSettings(Me)
  
End Sub

Private Function GetSettings(Obj As Object) As Variant
  GetSettings = Split(Obj.Tag, ";")
End Function

Private Sub UpdateSettings(Obj As Object)
  Obj.Tag = Join(Array(Obj.Left, Obj.Top, Obj.Width, Obj.Height), ";")
End Sub

 

Wie du schon erwähnt hast, muss man für jedes Control einen Anker festlegen und wie es sich bei einem Resize verhalten soll.

Dies lässt sich mittels Klassenprogrammierung in VBA noch ganz gut umsetzen; ist jedoch aufwendig.

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
03.11.2021 13:25:30 schlaaand
NotSolved
Blau Bei Größenänderung des Formulars die Steuerelemente "mitwandern"
03.11.2021 16:37:08 Gast51371
NotSolved
03.11.2021 16:40:24 Gast51371
NotSolved