Entwickler-Ecke
WinForms - Usercontrol einbinden
mcsnoop - Di 30.03.10 20:19
Titel: Usercontrol einbinden
Hi@All
Split mit 2 Panel
Im linken Panel das TreeView Element und im rechten Panel soll das passende User Control eingeblendet werden.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByMouse) { MessageBox.Show(e.Node.FullPath);
} } |
Jetzt müsste ich doch nur bei der entsprechende Aktion das User Control in das Panel einfügen oder?
C#-Quelltext
1: 2: 3:
| UserControl c1 = null; c1 = new Einstellungen(); this.splitContainer1.Panel2(c1); |
Das produziert aber folgende Fehlermeldung:
Quelltext
1:
| Error 1 Non-invocable member 'System.Windows.Forms.SplitContainer.Panel2' cannot be used like a method. E:\Projekte\WindowsForms1\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 37 38 WindowsFormsApplication1 |
=(
Grüße
Kha - Di 30.03.10 20:34
Ein Panel-Objekt ist nunmal keine aufrufbare Methode :) . Wie bei jedem anderen Control fügst du Elemente über die
Controls-Auflistung hinzu.
C#-Quelltext
1:
| splitContainer1.Panel2.Controls.Add(c1); |
mcsnoop - Di 30.03.10 20:51
danke
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| String Name = e.Node.Name; UserControl c1 = null; switch (Name) { case "Ausgaben": c1 = new Ausgaben(); splitContainer1.Panel2.Controls.Add(c1); break; case "Einnahmen": c1 = new Einnahmen(); splitContainer1.Panel2.Controls.Add(c1); break; case "Einstellungen": c1 = new Einstellungen(); splitContainer1.Panel2.Controls.Add(c1); break; default: MessageBox.Show(e.Node.Name); break; } |
Jetzt noch das im Panel eingefügte maximieren. Komischerweise fügt er die neuen User Controls immer hinter dem vorigen ein, woran liegt das?
Grüße
EDIT:
C#-Quelltext
1:
| splitContainer1.Panel2.Controls.Clear(); |
Kann man das Flackern zwischen dem Wechsel zwischen 2 User Controls unterbinden?
mcsnoop - Di 30.03.10 22:18
gelöst =)
C#-Quelltext
1: 2:
| c1.Dock = DockStyle.Fill; c1.BringToFront(); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!