Autor Beitrag
mcsnoop
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Di 30.03.10 20:19 
Hi@All

Split mit 2 Panel

Im linken Panel das TreeView Element und im rechten Panel soll das passende User Control eingeblendet werden.

ausblenden 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?
ausblenden C#-Quelltext
1:
2:
3:
                UserControl c1 = null;
                c1 = new Einstellungen(); 
                this.splitContainer1.Panel2(c1);


Das produziert aber folgende Fehlermeldung:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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.
ausblenden C#-Quelltext
1:
splitContainer1.Panel2.Controls.Add(c1);					

_________________
>λ=
mcsnoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Di 30.03.10 20:51 
danke

ausblenden 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:

ausblenden C#-Quelltext
1:
splitContainer1.Panel2.Controls.Clear();					


Kann man das Flackern zwischen dem Wechsel zwischen 2 User Controls unterbinden?
mcsnoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Di 30.03.10 22:18 
gelöst =)

ausblenden C#-Quelltext
1:
2:
                c1.Dock = DockStyle.Fill;
                c1.BringToFront();