Hallo Liebe Community,
mir hatte seit Tagen eine Sache bedrückt.
Wie stellt man eine Form mit Maximieren Button und Wiederherstellen Button in 1 auf.
Heute im Englisch Unterricht ist mir die Lösung eingefallen. Nun weiß ich alles wie man seine eigene Form macht mit allen drum und dran.
Fangen wir mal an.
Stand: 25.03.2011
Wir erstellen das Projekt:
Press me!

Gehen nun zur Form Properties: FormBorderStyle auf None setzen.
Press me!

Nun fügen wir 8 PictureBoxen ein.
Press me!

PictureBox1-8 Eigenschaften
PictureBox1 Anchor: Top, Left
PictureBox2 Anchor: Top, Left, Right
PictureBox3 Anchor: Top, Right
PictureBox4 Anchor: Top, Bottom, Left
PictureBox5 Anchor: Top, Bottom, Right
PictureBox6 Anchor: Bottom, Left
PictureBox7 Anchor: Bottom, Left, Right
PictureBox8 Anchor: Bottom, Right
Nun verbinden wir die PictureBoxen.
Press me!

So sieht nun die Form aus.
Nun zu den Einzelnen Codes^^
PictureBoxen Code
Press me!
Mit diesen Code ist es möglich die Form zu verschieben, wenn man auf eine der Acht PictureBoxen Klickt.
PictureBox1
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
If (e.Button = Windows.Forms.MouseButtons.Left) Then
PictureBox1.Capture = False
Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
Else : End If
End Sub
PictureBox2
Private Sub PictureBox2_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox2.MouseDown
If (e.Button = Windows.Forms.MouseButtons.Left) Then
PictureBox2.Capture = False
Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
Else : End If
End Sub
PictureBox3
Private Sub PictureBox3_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox3.MouseDown
If (e.Button = Windows.Forms.MouseButtons.Left) Then
PictureBox3.Capture = False
Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
Else : End If
End Sub
PictureBox4
Private Sub PictureBox4_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox4.MouseDown
If (e.Button = Windows.Forms.MouseButtons.Left) Then
PictureBox4.Capture = False
Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
Else : End If
End Sub
PictureBox5
Private Sub PictureBox5_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox5.MouseDown
If (e.Button = Windows.Forms.MouseButtons.Left) Then
PictureBox5.Capture = False
Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
Else : End If
End Sub
PictureBox6
Private Sub PictureBox6_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox6.MouseDown
If (e.Button = Windows.Forms.MouseButtons.Left) Then
PictureBox6.Capture = False
Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
Else : End If
End Sub
PictureBox7
Private Sub PictureBox7_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox7.MouseDown
If (e.Button = Windows.Forms.MouseButtons.Left) Then
PictureBox7.Capture = False
Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
Else : End If
End Sub
PictureBox8
Private Sub PictureBox8_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox8.MouseDown
If (e.Button = Windows.Forms.MouseButtons.Left) Then
PictureBox8.Capture = False
Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
Else : End If
End Sub
Nun zu dem wirklich Coolem. :D
Die Control Dinger oben Rechts einer Form.
Diesmal brauchen wir 4 weitere PictureBoxen. Also 9, 10, 11, 12
Press me!

Picturebox10 ist vor der PictureBox11.
Nun zu den Codes:
Press me!
PictureBox9 [Minimieren]
PictureBox10 [Maximieren]
PictureBox11 [Wiederherstellen]
PictureBox12 [Schließen]
So das war eigl. alles über die Form, aber morgen oder später gibt es noch mehr, wie z.B. Maximize, Minimize, etc. Animationen, wie es Üblich auch ist.
Ich werde dann noch schreiben wie man die Formgrafiken aus einem Ressource Ordner lädt etc.
Freut euch schon mal drauf.
Stand: 26.03.2011
Nun zu den Animationen. Da haben wir 2 Möglichkeiten.
#1 Möglichkeit ist es aus den Ressourcen zu Laden (Im Vb.net Projekt)
#2 Möglichkeit ist es die Dateien aus einem Pfad zu Laden.
Ich zeige euch nun beide Möglichkeiten^^.
Beginnen wir mal mit den Minimize Button(PictureBox9).
Dazu nehmen wir diese 3 Grafiken


#1
Press me!
Grafik anzeigen lassen.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox9.BackgroundImage = My.Resources.minimize_normal
End Sub
Grafik wenn die Maus drüber fährt.
Private Sub PictureBox9_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox9.MouseEnter
PictureBox9.BackgroundImage = My.Resources.minimize_hover
End Sub
Nun wenn die Maus klickt soll sich auch der Button ändern.
Private Sub PictureBox9_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox9.MouseDown
PictureBox9.BackgroundImage = My.Resources.minimize_pressed
End Sub
Nun zu der Grafik wenn die Maus es verlässt
#2
Press me!
Grafik anzeigen lassen.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox9.BackgroundImage = Image.FromFile("minimize normal.png")
End Sub
Grafik wenn die Maus drüber fährt.
Private Sub PictureBox9_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox9.MouseEnter
PictureBox9.BackgroundImage = Image.FromFile("minimize hover.png")
End Sub
Nun wenn die Maus klickt soll sich auch der Button ändern.
Private
Sub PictureBox9_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles PictureBox9.MouseDown
PictureBox9.BackgroundImage = Image.FromFile("minimize pressed.png")
End Sub
Nun zu der Grafik wenn die Maus es verlässt
Nun zu den maximize Button(PictureBox10).
Dazu nehmen wir diese 3 Grafiken.


#1
Press me!
Grafik anzeigen lassen.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox10.BackgroundImage = My.Resources.maximize_normal
End Sub
Grafik wenn die Maus drüber fährt.
Private Sub PictureBox10_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox10.MouseEnter
PictureBox10.BackgroundImage = My.Resources.maximize_hover
End Sub
Nun wenn die Maus klickt soll sich auch der Button ändern.
Private Sub PictureBox10_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox10.MouseDown
PictureBox10.BackgroundImage = My.Resources.maximize_pressed
End Sub
Nun zu der Grafik wenn die Maus es verlässt
#2
Press me!
Grafik anzeigen lassen.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox10.BackgroundImage = Image.FromFile("maximize normal.png")
End Sub
Grafik wenn die Maus drüber fährt.
Private Sub PictureBox10_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox10.MouseEnter
PictureBox10.BackgroundImage = Image.FromFile("maximize hover.png")
End Sub
Nun wenn die Maus klickt soll sich auch der Button ändern.
Private
Sub PictureBox10_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles PictureBox10.MouseDown
PictureBox10.BackgroundImage = Image.FromFile("maximize pressed.png")
End Sub
Nun zu der Grafik wenn die Maus es verlässt
Nun zu den Restore Button(PictureBox11).
Dazu nehmen wir diese 3 Grafiken.


#1
Press me!
Grafik anzeigen lassen.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox11.BackgroundImage = My.Resources.restore_normal
End Sub
Grafik wenn die Maus drüber fährt.
Private Sub PictureBox11_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox11.MouseEnter
PictureBox11.BackgroundImage = My.Resources.restore_hover
End Sub
Nun wenn die Maus klickt soll sich auch der Button ändern.
Private Sub PictureBox11_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox11.MouseDown
PictureBox11.BackgroundImage = My.Resources.restore_pressed
End Sub
Nun zu der Grafik wenn die Maus es verlässt
#2
Press me!
Grafik anzeigen lassen.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox11.BackgroundImage = Image.FromFile("restore normal.png")
End Sub
Grafik wenn die Maus drüber fährt.
Private Sub PictureBox11_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox11.MouseEnter
PictureBox11.BackgroundImage = Image.FromFile("restore hover.png")
End Sub
Nun wenn die Maus klickt soll sich auch der Button ändern.
Private
Sub PictureBox11_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles PictureBox11.MouseDown
PictureBox11.BackgroundImage = Image.FromFile("restore pressed.png")
End Sub
Nun zu der Grafik wenn die Maus es verlässt
Nun zu den close Button(PictureBox12).
Dazu nehmen wir diese 3 Grafiken.


#1
Press me!
Grafik anzeigen lassen.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox12.BackgroundImage = My.Resources.close_normal
End Sub
Grafik wenn die Maus drüber fährt.
Private Sub PictureBox12_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox12.MouseEnter
PictureBox12.BackgroundImage = My.Resources.close_hover
End Sub
Nun wenn die Maus klickt soll sich auch der Button ändern.
Private Sub PictureBox12_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox12.MouseDown
PictureBox12.BackgroundImage = My.Resources.close_pressed
End Sub
Nun zu der Grafik wenn die Maus es verlässt
#2
Press me!
Grafik anzeigen lassen.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox12.BackgroundImage = Image.FromFile("close normal.png")
End Sub
Grafik wenn die Maus drüber fährt.
Private Sub PictureBox12_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox12.MouseEnter
PictureBox12.BackgroundImage = Image.FromFile("close hover.png")
End Sub
Nun wenn die Maus klickt soll sich auch der Button ändern.
Private
Sub PictureBox12_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles PictureBox12.MouseDown
PictureBox12.BackgroundImage = Image.FromFile("close pressed.png")
End Sub
Nun zu der Grafik wenn die Maus es verlässt
Das war nun alles zu den Control der Form.
Das Tutorial ist 100% von mir Geschrieben. Alle Grafiken habe ich selber geschnitten etc.
Das schreiben hat ca. 3-4 Stunden gedauert.
Don´t Copy / Paste :D
Solltet ihr noch Irgendwelche fragen haben, dann stellt diese bitte hier.
PS: Es kommt bald ein Update wenn ich wieder @ Home bin^^
mfg
Nintendo94