Laden...

Komplexes(mehr oder weniger) Fensterlayout erstellen

Erstellt von Zaphod.B vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.239 Views
Thema geschlossen
Z
Zaphod.B Themenstarter:in
6 Beiträge seit 2012
vor 11 Jahren
Komplexes(mehr oder weniger) Fensterlayout erstellen

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 😃

Gelöschter Account
vor 11 Jahren

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.

C
2.121 Beiträge seit 2010
vor 11 Jahren

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.

T
111 Beiträge seit 2005
vor 11 Jahren

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:

  1. Zu langsam
  2. Mit den Usercontrols brauchts Du keine Positionsberechnungen, einfach den Dockstyle auf "Top" setzen.
Z
Zaphod.B Themenstarter:in
6 Beiträge seit 2012
vor 11 Jahren

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

Z
Zaphod.B Themenstarter:in
6 Beiträge seit 2012
vor 11 Jahren

und so sieht es bei mir momentan aus 😃 , siehe Screenshot 2 und 3

Screenshot 2

Z
Zaphod.B Themenstarter:in
6 Beiträge seit 2012
vor 11 Jahren
49.485 Beiträge seit 2005
vor 11 Jahren

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

Thema geschlossen