Announcement

Collapse
No announcement yet.

Formverschiebung parallel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formverschiebung parallel

    Guten Abend zusammen.

    Ich muss wieder einmal um Hilfe fragen. Und zwar habe ich eine einfache Windows Form, die beliebig verschieb- und streckbar ist. Auf dieser Form sollen sich nun die Width und Height gegenseitig erhöhen bzw. vermindern lassen, damit am Ende diese beiden Eigenschaften immer in dem gleichen Verhältnis zueinander stehen.

    Dazu habe ich mir folgenden, simplen Code einfallen lassen:

    [highlight=vbnet]
    Public Class frmTestZoom

    Private FormX As Integer
    Private FormY As Integer

    Private Sub frmTestZoom_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown

    FormY = Me.Size.Height
    FormX = Me.Size.Width

    End Sub

    Private Sub frmTestZoom_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
    Dim Differenz As Integer
    Dim NeueKoordinaten As Point
    Dim NeuX As Integer = Me.Size.Width
    Dim NeuY As Integer = Me.Size.Height

    If NeuX <> FormX Then

    Differenz = NeuX - FormX

    NeueKoordinaten = New Point(NeuX, FormY + Differenz)

    Me.Size = NeueKoordinaten

    FormY = NeueKoordinaten.Y
    FormX = NeueKoordinaten.X

    Exit Sub

    End If

    If NeuY <> FormY Then

    Differenz = NeuY - FormY

    NeueKoordinaten = New Point(FormX + Differenz, NeuY)

    Me.Size = NeueKoordinaten

    FormY = NeueKoordinaten.Y
    FormX = NeueKoordinaten.X

    Exit Sub

    End If

    End Sub

    End Class
    [/highlight]

    Das Ganze funktioniert auch - allerdings ergibt sich das Problem, dass die Form beim strecken extrem flackert, weil sie scheinbar zu oft die Größe ändert.

    Hat zufällig jemand einen Rat wie man das Ganze ein wenig besser lösen könnte?

    Mfg, Myst

  • #2
    beliebig verschieb- und streckbar ist. Auf dieser Form sollen sich nun die Width und Height gegenseitig erhöhen bzw. vermindern lassen, damit am Ende diese beiden Eigenschaften immer in dem gleichen Verhältnis zueinander stehen.
    Versteh ich zwar nicht, weil entweder Höhe und Breite haben ein fixes Verhältnis oder nicht.

    Ist egal. Probier mal in der Form die Eigenschaft DoubleBuffered = True zu setzen.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Danke für die rasche Antwort!

      Ergebnis deines Vorschlags:
      Das Verändern der Breite funktioniert nun wesentlich besser, aber
      das Verändern der Höhe ist immernoch eine Katastrophe.

      Ich nehme an, dass ich mir wohl etwas neues einfallen lassen muss :/

      Comment

      Working...
      X