Autor Beitrag
mariog86
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 30.08.07 16:01 
Hallo zusammen

Ich bin gerade dabei mir ein Panel zu erstellen, das verschiedene Rahmen haben kann, die auch unterschiedliche Breiten haben können.
Wenn ich nun beim normalen Panel z.B. den BorderStyle auf Fixed3D setze, kann ich keine Komponenten auf dem Rahmen platzieren, da sich der Client Bereich ändert.
Ich habe herausgefunden dass ich mit der Methode

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
protected void UpdateBounds (
  int x,
  int y,
  int width,
  int height,
  int clientWidth,
  int clientHeight
)


die von Control vererbt wird die Grösse des Client Bereichs verändern kann, was auch wunderbar funktioniert. Allerdings konnte ich nicht herausfinden, wie ich die Position des Client Bereichs verändern kann. Ausserdem werden Komponenten die über den Rand des Panels hinausgehen über den Rahmen hinausgezeichnet, obwohl ich bevor ich die OnPaintMethode aufrufe den ClipBereich anpasse.

Was bis jetzt funktioniert ist, dass wen ich das Property Dock einer Komponente innerhalb des Panels auf Fill setze, die Komponente danach die Grösse der ClientSize hat und nicht der Size des Panels.

Gibt es dafür eine Lösung? Das Original Panel kann es ja auch irgendwie.

Vielen Dank schonmal für eure Antworten.