PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB.NET] Capture Minimize und Maximize einer Form



slaystation
14.05.2009, 11:09
Hallo,

siehe Oben, wie kann man das anstellen?

Es gibt ja nur Resize, ResizeEnd, ResizeStart und SizeChanged
aber wie kann ich den Maximieren Button (oben in der Form) überwachen, (besonders wichtig ist wenn man Maximiert hat und es danach wiederherstellt)?

Bis jetzt habe ich für Manuelle Resize:


Private Sub Form1_ResizeEnd(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ResizeEnd
zeug()
End SubDas führt halt immer zeug aus wenn ich mit dem manuellen "resizen" fertig bin und für maximize und minimize habe ich:


Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged

If Me.WindowState = FormWindowState.Maximized Or Me.WindowState = FormWindowState.Minimized Then
zeug()
End If

End SubWenn man die Form jetzt maximiert / minimiert führt es halt zeug aus, aber jetzt brauch ich was wenn man die Form aus dem Maximierten Zustand wiederherstellt.

Man kann es mit:


Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged

If Me.WindowState = FormWindowState.Maximized Or Me.WindowState = FormWindowState.Minimized Or Me.WindowState = FormWindowState.Normal Then
zeug()
End If

End Submachen, aber das führt halt dazu, dass es "zeug" auch beim manuellen resizen dauerhaft ausführt (das will ich nicht).

Wie kann ich das anstellen oder hab ich einfach nen dicken Denkfehler drin weil ein direktes Capture von maximize etc. gibt es ja nicht.

MfG

HawK
14.05.2009, 11:58
hmm was meinst du mit "zeug" ? bzw. was genau willst du was das Programm machen soll vielleicht kann ich dir dann weiterhelfen


Greetz Hakw

slaystation
14.05.2009, 12:05
Es geht um Graphics Server .Net, also um Charts die sich nicht automatisch aktualisieren bei "resize" (sollen sie aber bei Minimize, Maximize und manuellen resize, also immer)

Die Charts bekommen die Daten aus einer Datenbank und zur Code Optimierung hab ich das in ne Schleife gepackt.

Sind 3 Charts im übrigen.

kA ob dir Graphics Server .Net überhaupt was sagt :)

Funktioniert alles bis auf diesen komischen "resize" Fehler.

Edit: "zeug" ist im oben genannten Fall nur ein Beispiel und dient zu Veranschaulichung.

HawK
14.05.2009, 12:07
um ehrlich zu sein höre ich von

Graphics Server .Net

das erste mal sry kann dir da leider nicht weiterhelfen :(

slaystation
14.05.2009, 12:28
Es geht ja auch im Grunde nicht um Graphics Server .Net sondern um meine Frage wie ich das schreiben kann, damit der "Befehl zeug" nicht immer ausgeführt wird wenn jemand manuell die Form vergrößert / verkleinert.

Steav
16.05.2009, 11:04
Du musst Dir in der Klasse eine HIlfsvariable erstellen in der du den vorherigen Formstate festhältst



// Hier FormWindowState PriorFormState deklarieren
Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
// Hier abfragen ob PRiorFOrmState == Maxminized
TueANderesZEUgs();

If Me.WindowState = FormWindowState.Maximized Or Me.WindowState = FormWindowState.Minimized Or Me.WindowState = FormWindowState.Normal Then
zeug()
End If
// Und am Ende des Events PriorFormState = Me.WindowState
End Sub


Sory für die verpeilte beschreibung^^

Sirect
16.05.2009, 12:16
Also:

Möchtest du daß "Zeug()" ausgeführt wird wenn man Maximiert oder Minimiert, nicht aber wenn man das Fenster zieht?

inmate
16.05.2009, 15:59
also ich verstehe auch nicht was er meint aber wenn es das ist was sirect meint dann könnte man es doch ganz easy mit na if-else funktion machen

Montaxx
16.05.2009, 16:02
ich will jetzt net klugscheißen, aber kannste net einfach eigene minimer, maximier und schließ Buttons machen ? Würde theoretisch die Sache viel einfacher machen. Dann könntets du dein "Zeug" bei nem Klick auf den Buton ausführen ^^