TabControl benutzen ohne TabControl =)

21/03/2010 - 17:53 von Tobias Philipp | Report spam
hallo@all,

ich friemel mich zur Zeit in Windows Forms ein und habe nun das Element
TabControl erreicht.

Nun möchte ich die einzelnen Panel der TabControl benutzen. Das
entsprechende Panel soll über ein TreeMenü ausgewàhlt werden. Dabei soll
aber nicht die Tabs angezeigt werden.

In den Properties habe ich keinen Schalter gefunden wo ich die
Tab-Reiter "ausblenden" kann.

Hab ich den übersehen oder muss ich das irgendwo per Code machen?

Hoffe mich verstàndlich ausgedrückt zu haben, wenn nicht bitte kurze Info.

grüße
 

Lesen sie die antworten

#1 Frank Dzaebel
21/03/2010 - 20:11 | Warnen spam
Hallo Tobias,

Nun möchte ich die einzelnen Panel der TabControl benutzen.



Das sind die TabPages.

entsprechende Panel soll über ein TreeMenü ausgewàhlt werden. Dabei soll
aber nicht die Tabs angezeigt werden.
In den Properties habe ich keinen Schalter gefunden wo ich die
Tab-Reiter "ausblenden" kann.



Also meinst Du, dass die TabPages bei der Anwahl nicht
selektiert werden sollen. Das wàre kein Problem.
Vielleicht zeigt Dir das folgende Beispiel schon mal, welche
Möglichkeiten Du hast. Es selektiert die TabPage nicht, sondern
fügt nur (ggf.) ein Label ein, das die aktuelle Uhrzeit erhàlt.


TreeView tv = new TreeView();
TabControl tc = new TabControl();
int abstand = 10;

private void Form1_Load(object sender, EventArgs e)
{
TreeNodesZufügen(tv, "Eins", "Zwei", "Drei");
Controls.Add(tv);
tv.AfterSelect += Tv_AfterSelect;

TabPagesZufügen(tc, "Eins", "Zwei", "Drei");
tc.Location = new Point(0, tv.Height + abstand);
Controls.Add(tc);
}

private void TabPagesZufügen(TabControl tc, params string[] namen)
{
foreach (string name in namen) tc.TabPages.Add(name, name);
}

private void TreeNodesZufügen(TreeView tv, params string[] namen)
{
foreach (string name in namen) tv.Nodes.Add(name);
}

void Tv_AfterSelect(object sender, TreeViewEventArgs e)
{
if (!tc.TabPages.ContainsKey(e.Node.Text))
{
MessageBox.Show("'" + e.Node.Text + "' ist nicht " +
"als TabPage vorhanden.");
return;
}
TabPage tp = tc.TabPages[e.Node.Text]; //<- Hier ist die TabPage
if (tp.Controls.Count == 0)
{
Label lbl = new Label();
tp.Controls.Add(lbl);
}
(tp.Controls[0] as Label).Text = "Neu: " +
DateTime.Now.ToLongTimeString();
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen