Eigene Form Basteln

  • 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

    Code
    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

    PHP
    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

    PHP
    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

    PHP
    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

    PHP
    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

    PHP
    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

    PHP
    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

    PHP
    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

    PHP
    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]

    PHP
    Me.WindowState = FormWindowState.Minimized

    PictureBox10 [Maximieren]

    PHP
    Me.WindowState = FormWindowState.Maximized
    PictureBox10.Hide
    PictureBox11.Show

    PictureBox11 [Wiederherstellen]

    PHP
    Me.WindowState = FormWindowState.Normal
    PictureBox11.Hide
    PictureBox10.Show

    PictureBox12 [Schließen]

    PHP
    Application.Exit

    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.

    PHP
    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.

    PHP
    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.

    PHP
    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

    PHP
    Private Sub PictureBox9_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox9.MouseMove
    PictureBox9.BackgroundImage = My.Resources.minimize_normal
    End Sub

    #2

    Press me!


    Grafik anzeigen lassen.

    PHP
    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.

    PHP
    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.

    PHP
    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

    PHP
    Private Sub PictureBox9_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox9.MouseLeave
    PictureBox9.BackgroundImage = Image.FromFile("minimize normal.png")
    End Sub


    Nun zu den maximize Button(PictureBox10).
    Dazu nehmen wir diese 3 Grafiken.

    #1

    Press me!


    Grafik anzeigen lassen.

    PHP
    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.

    PHP
    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.

    PHP
    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

    PHP
    Private Sub PictureBox10_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox10.MouseMove
    PictureBox10.BackgroundImage = My.Resources.maximize_normal
    End Sub

    #2

    Press me!


    Grafik anzeigen lassen.

    PHP
    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.

    PHP
    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.

    PHP
    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

    PHP
    Private Sub PictureBox10_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox10.MouseLeave
    PictureBox10.BackgroundImage = Image.FromFile("maximize normal.png")
    End Sub


    Nun zu den Restore Button(PictureBox11).
    Dazu nehmen wir diese 3 Grafiken.

    #1

    Press me!


    Grafik anzeigen lassen.

    PHP
    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.

    PHP
    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.

    PHP
    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

    PHP
    Private Sub PictureBox11_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox11.MouseMove
    PictureBox11.BackgroundImage = My.Resources.restore_normal
    End Sub

    #2

    Press me!


    Grafik anzeigen lassen.

    PHP
    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.

    PHP
    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.

    PHP
    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

    PHP
    Private Sub PictureBox11_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox11.MouseLeave
    PictureBox11.BackgroundImage = Image.FromFile("restore normal.png")
    End Sub


    Nun zu den close Button(PictureBox12).
    Dazu nehmen wir diese 3 Grafiken.

    #1

    Press me!


    Grafik anzeigen lassen.

    PHP
    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.

    PHP
    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.

    PHP
    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

    PHP
    Private Sub PictureBox12_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox12.MouseMove
    PictureBox12.BackgroundImage = My.Resources.close_normal
    End Sub

    #2

    Press me!


    Grafik anzeigen lassen.

    PHP
    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.

    PHP
    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.

    PHP
    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

    PHP
    Private Sub PictureBox12_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox12.MouseLeave
    PictureBox12.BackgroundImage = Image.FromFile("close normal.png")
    End Sub


    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

    [CENTER][SIGPIC][/SIGPIC]
    Mein Traum[/CENTER]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!