Hallo,
für eine Aufgabe möchte ich gerne das Layout der "Notification Area"(sorry, aber mein Windows ist auf Englisch) nachbauen. Im Anhang ist ein Screenshot davon. Die Anzahl der Steuerelemente im mittleren Fenster ändert sich dynamisch. Außerdem sollen die Buttons OK und Cancel ihre relative Position zur unteren rechten Ecke nicht ändern.
Hab bis jetzt 1-2 sehr einfache Dinge mit Windows Forms gemacht, sodass diese Aufgabestellung mir ziemlich komplex erscheint. Bin also für jede Anregung dankbar 😃
Hallo Zaphod,
Ich habe Schwierigkeiten deine Frage zu verstehen. Du willst Icons in der "Tray Area" anzeigen lassen? Dafür gibt es das TrayNotifyIcon. Den Rest der Frage verstehe ich einfach nicht.
Wenn du möchtest das Controls sich in ihrer Position immer relativ an der rechten unteren Ecke orientieren setzt du das Anchor Property einfach auf Bottom|Right.
Er möchte ein Fenster in diesem Stil nachbauen.
Panel mit Scrollmodus auf true.
Controls dynamisch erzeugen und ins Panel setzen.
Schau dir an was der Designercode macht wenn du ein Control in ein Panel "hinein designst". Das machst du dann zur Laufzeit. Position muss natürlich jedes mal neu berechnet werden.
Hallo Zaphod
mach dir ein Usercontrol mit dem Label und der Combobox. Diese kannst Du dann einem Panel (mit Autoscroll) dynamisch hinzufügen. Im Usercontrol stellst Du dann entsprechende Properties und Events zur Verfügung und fertig.
Thomas
Edit:
danke für die schnellen Antworten, ich möchte auch, dass dieses Panel mit allen seinen Inhalten sich auch dynamisch verändert, wenn der Benutzer ihn vergrößert oder verkleinert.
1: So macht das Microsoft
und so sieht es bei mir momentan aus 😃 , siehe Screenshot 2 und 3
Screenshot 2
Screenshot 3:
Hallo Zaphod.B,
wie du die Controls dynamisch dazu bekommst, haben die anderen schon geschrieben. Im Grunde musst du die Controls nur erzeugen, initialisieren und mit Form.Controls.Add hinzufügen. Beachte aber auch die Anmerkungen zu Listen-Controls in [FAQ] Variablennamen zur Laufzeit zusammensetzen.
Dafür dass sie ihre Größe richtig ändern, gibt es die Control.Anchor und Control.Dock-Properties und sollte das nicht reichen, das TableLayoutPanel oder das Form.Resize-Event. Siehe auc [FAQ] Assistenten/Wizards: Mit Windows Forms eine Art Frameset einer Website nachbauen (das ist zwar nicht direkt, was du willst, aber aber eben doch ein Beispiel für ein "Komplexes Fensterlayout".
Wobei dein Beispiel wirklich eher weniger komplex ist. Auf jeden Fall fallen die genannten Properties und Techniken unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore