Wie angekündigt kommt hier mein Guide zum erstellen von eigenen Formen
Als erstes zur theorie:
Wir erstellen als erstes einmal aus linien den umris und wenden ihn dann auf die Form an.
Zur praxis:
Als erstes Einmal wie solls aussehen

diese form besteht aus 8 teilen
4 kurven und 4 linien

nun zum Programmcode
Als erstes erstellen wir den pfad der form
nun haben wir ein pfad objekt aber noch keinen pfad
den fügen wir nun hinzu
wir beginen als erstes mit der linie die ganz oben ist
in diesem bild sieht man gut wie die linien und kreise aufgeteilt sind

Die Linie fängt also ganz oben direkt hinter dem kreis also dem radius an und endet direkt vor dem kreis also dem radius
der radius hat den wert 20
daher deklinieren wir eine variable vom type int
eine linie fügt man so hinzu
Pfadname.AddLine(Xwert des ersten punktes, ywert des ersten punkts, x des endpunktes, y des endpunkts)
also für die obere linie
dann nehmen wir uns den rechten oberen bogen for
einen bogen fügt man mit arc hinzu
arc ist ein teil der elipse
beim hinzufügen muss man wissen das sie aus enem kasten besteht, dem start winkel und der große in grad
die box sieht so aus

der startpunkt ist die position der box und der radius ist die größe der box
der startwinkel einer ark ist nach untenhin 0 also

das wäre eine ark mit dem startgrad 0 und der größe 90 grad
nun wollen wir sie ja dass sie wie oben rechts ist also das es am anfang nach rechts geht und dann hinter der furve nach unten
also muss der startgrad bei 270 sein und die größe soll 90 sein
der code für ne ark funktioniert so
die box beginnt wie man oben gut sehen kann hinter der linie also bei der breite der form- radius ergo lautet der code
für die anderen kurven und linien rauszufinden muss man nur ein bisschen nachdenken deshalb geh ich da nicht näher drauf ein
nun haben wir 4 einzelne linien und 4 kurven aber die müssen erst zu einem pfad werden
das machen wir mit
nun müssen wir nur noch den pfad auf das objekt (form, picturebox, progressbar, whatever) anwenden
ich verwende die form (Me) aber bei allen anderen objs der windows.forms gehts genauso
und jtz nur noch den pfad ausm ram löschen
dür die die nur copy und paste wollen hier der gesammte code:
Alles anzeigen
Als erstes zur theorie:
Wir erstellen als erstes einmal aus linien den umris und wenden ihn dann auf die Form an.
Zur praxis:
Als erstes Einmal wie solls aussehen

diese form besteht aus 8 teilen
4 kurven und 4 linien

nun zum Programmcode
Als erstes erstellen wir den pfad der form
nun haben wir ein pfad objekt aber noch keinen pfad
den fügen wir nun hinzu
wir beginen als erstes mit der linie die ganz oben ist
in diesem bild sieht man gut wie die linien und kreise aufgeteilt sind

Die Linie fängt also ganz oben direkt hinter dem kreis also dem radius an und endet direkt vor dem kreis also dem radius
der radius hat den wert 20
daher deklinieren wir eine variable vom type int
eine linie fügt man so hinzu
Pfadname.AddLine(Xwert des ersten punktes, ywert des ersten punkts, x des endpunktes, y des endpunkts)
also für die obere linie
dann nehmen wir uns den rechten oberen bogen for
einen bogen fügt man mit arc hinzu
arc ist ein teil der elipse
beim hinzufügen muss man wissen das sie aus enem kasten besteht, dem start winkel und der große in grad
die box sieht so aus

der startpunkt ist die position der box und der radius ist die größe der box
der startwinkel einer ark ist nach untenhin 0 also

das wäre eine ark mit dem startgrad 0 und der größe 90 grad
nun wollen wir sie ja dass sie wie oben rechts ist also das es am anfang nach rechts geht und dann hinter der furve nach unten
also muss der startgrad bei 270 sein und die größe soll 90 sein
der code für ne ark funktioniert so
die box beginnt wie man oben gut sehen kann hinter der linie also bei der breite der form- radius ergo lautet der code
für die anderen kurven und linien rauszufinden muss man nur ein bisschen nachdenken deshalb geh ich da nicht näher drauf ein
nun haben wir 4 einzelne linien und 4 kurven aber die müssen erst zu einem pfad werden
das machen wir mit
nun müssen wir nur noch den pfad auf das objekt (form, picturebox, progressbar, whatever) anwenden
ich verwende die form (Me) aber bei allen anderen objs der windows.forms gehts genauso
und jtz nur noch den pfad ausm ram löschen
dür die die nur copy und paste wollen hier der gesammte code:
Quellcode
- Dim path As New Drawing.Drawing2D.GraphicsPath
- Dim radius As Integer = 20
- path.AddLine(0 + radius, 0, Me.Width - radius, 0)
- path.AddArc(Me.Width - radius, 0, radius, radius, 270, 90)
- path.AddLine(Me.Width, radius, Me.Width, Me.Height - radius)
- path.AddArc(Me.Width - radius, Me.Height - radius, radius, radius, 0, 90)
- path.AddLine(radius, Me.Height, Me.Width - radius, Me.Height)
- path.AddArc(0, Me.Height - radius, radius, radius, 90, 90)
- path.AddLine(0, radius, 0, Me.Height - radius)
- path.AddArc(0, 0, radius, radius, 180, 90)
- path.CloseFigure()
- Me.Region = New Region(path)
- path.Dispose()