Form selbst zeichnen

jccTeq

Erfahrenes Mitglied
Hallo Leute,

da im anderen Thread niemand meinen Post zum Thema gelesen hat, stell ich meine Anfrage nochmal offiziell für mich. Ich hab schon umfangreich bei google gesucht und auch schon die einschlägigen Foren durchwühlt, einschließlich diesem hier, ohne fündig zu werden.

Ich möchte ein Form-Control erstellen, dem ich per überladene OnPaint-Funktion ein völlig neues Aussehen verpassen will. Leite ich von System.Windows.Forms.Form ab, sieht das Fenster ja aus, wie immer. Leite ich von System.Windows.Forms.UserControl oder ...Control ab, so ist es mir nicht möglich, ein Form-Objekt dieser neuen Control-Klasse dem Application.Run() Aufruf zu übergeben.

Jetzt suche ich Tutorials und Material zum Erstellen von benutzerdefinierten Controls im Allgemeinen und zum Erstellen eines benutzerdefinierten Form-Controls im Speziellen.

Wer kann mir ein paar Links geben? Wäre klasse!

Danke

Gruß, Hendrik
 
Verstehe ich Dich richtig, Du willst praktisch ein Form ableiten, damit Du beispielsweise Titleleiste, die Kontrolsymbole usw. verändern kannst?
 
Nur mal so ein Gedanke....

Von ner Form ableiten. Titelleiste, Controls etc. ausblenden und eigene Leiste etc. platzieren.

Sollte doch funktionieren.
 
Hmm... wäre 'ne Maßnahme. Probier ich mal aus...

vielleicht hilft ja auch dieser DoubleBuffer Kram dabei. Also

SetStyle(UserPaint, true);

und so... Bei meiner selbstdefinierten Statusbar (farbige Panels etc.) hat's funktioniert. :)

Mal schauen.

Thx!
 
Wenn ich dich richtig verstanden habe, dann möchtest du einen eigenen Style für deine Form. Dann kann ich dir helfen :)

Als erstes solltest du dem Form den Border wegnehmen (musst du aber nicht).
Du kannst einfach das onPaint Event der Form überschreiben, indem du folgenden Code einfügst:

Code:
protected override void OnPaint(PaintEventArgs e) 
{
      // hier gdi+ code
}
 
Das geht schon, nur die Funktionalität wie "Resizeable" und so ist damit flöten. Muss ich die dann manuell nachbauen?
 
Ja, musst du. Wenn die Titelleiste weg ist, musst (solltest) du dann auch eine Bereich definieren den man zum Verschieben benützen kannst etc.
 
Zurück