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
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
Comment