Hallo Leute,
ich habe eine Frage an euch, wenn hier im Forum jemand z.B. ein Spiel erstellt ist einer der Wichtigsten Punkte ob die Darstellung mit Controls oder GDI+ erfolgte, GDI+ hat natürlich gegenüber Controls sehr viele Vorteile, das ist mir klar...
Ich habe so etwas ähnliches vor, ich würde gerne eigene "Objekte" angelehnt an HTML-Tags erzeugen könnnen...
Die Objekte z.B. Div (=Rechteck) will ich dann per GDI+ auf einen Workspace zeichnen, z.B. mein Panel.
Nun will ich aber die Eigenschaft dieses Objektes Ändern können (Farbe, Border, Height, Width, usw...)
Wie kann ich denn dieses Objekt überhaupt klickbar machen und woher weiß ich welches Objekt geklickt wurde
Hier mal mein Ansatz...
ich habe eine Frage an euch, wenn hier im Forum jemand z.B. ein Spiel erstellt ist einer der Wichtigsten Punkte ob die Darstellung mit Controls oder GDI+ erfolgte, GDI+ hat natürlich gegenüber Controls sehr viele Vorteile, das ist mir klar...
Ich habe so etwas ähnliches vor, ich würde gerne eigene "Objekte" angelehnt an HTML-Tags erzeugen könnnen...
Die Objekte z.B. Div (=Rechteck) will ich dann per GDI+ auf einen Workspace zeichnen, z.B. mein Panel.
Nun will ich aber die Eigenschaft dieses Objektes Ändern können (Farbe, Border, Height, Width, usw...)
Wie kann ich denn dieses Objekt überhaupt klickbar machen und woher weiß ich welches Objekt geklickt wurde
Hier mal mein Ansatz...
VB.NET-Quellcode
- Option Strict On
- Public Class objekte
- Public Enum ObjektTyp
- Rechteck
- Absatz
- Text
- Bild
- Überschrift
- End Enum
- Public Enum ZentrierungsArt
- Links
- Mitte
- Rechts
- End Enum
- Public Enum RandTyp
- Durchgehend
- Gestrichelt
- Gepunktet
- none
- End Enum
- Private HTML_Text As System.Text.StringBuilder
- Private CSS_Text As System.Text.StringBuilder
- Private Property ID As String
- Private Property Klasse As String
- Private Property Typ As ObjektTyp
- Private Property Breite As Integer
- Private Property Höhe As Integer
- Private Property Zentrierung As ZentrierungsArt
- Private Property HintergrundFarge As System.Drawing.Color
- Private Property VordergrundFarbe As System.Drawing.Color
- Private Property Außenabstand_Links As Integer
- Private Property Außenabstand_Rechts As Integer
- Private Property Außenabstand_Oben As Integer
- Private Property Außenabstand_Unten As Integer
- Private Property Innenabstand_Links As Integer
- Private Property Innenabstand_Rechts As Integer
- Private Property Innenabstand_Oben As Integer
- Private Property Innenabstand_Unten As Integer
- Private Property RandArt As RandTyp
- Private Property RandDicke As Integer
- Private Property RandFarbe As System.Drawing.Color
- Public Sub New(ByVal ws As Control, ByVal Obj As ObjektTyp)
- Typ = Obj
- Select Case Typ
- Case ObjektTyp.Rechteck
- Me.Höhe = 50
- Me.Breite = ws.Width
- Dim g As Graphics = Graphics.FromHwnd(ws.Handle)
- g.DrawRectangle(Pens.Black, New Rectangle(frm_main.WidthNow, frm_main.HeightNow, Me.Breite - 3, Me.Höhe))
- frm_main.HeightNow += Me.Höhe
- End Select
- End Sub
- End Class