Hi all!
Das ist wohl ein gelegentliches Problem, eine Anwendung so Framesetmäßig zu designen, also links die Navi-Bar, und rechts wird entsprechend wechselnd ein Arbeitsbereich angezeigt.
Da gibts schon eine FAQ von Herbivore zu - [FAQ] Mit Forms eine Art Frameset einer Website nachbauen? , aber ich wollte mal meine einfache Lösung vorstellen, evtl. wandert die ja auch mal in die Snippets [EDIT=herbivore](verschieben erledigt)[/EDIT], oder als Anhang zu Herbivores FAQ-Beitrag
Das hier ist eigentlich der ganze Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace FrameSetLike {
public partial class frmFrameSetLike : Form {
public frmFrameSetLike() {
InitializeComponent();
//diese Einstellungen verstecken die Reiter erst zur Laufzeit
//zur Design-Zeit sind die Reiter ja sehr nützlich
tabControl1.SizeMode = TabSizeMode.Fixed;
tabControl1.ItemSize = new Size(0, 1);
tabControl1.Appearance = TabAppearance.Buttons;
this.listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged);
foreach (TabPage tp in this.tabControl1.TabPages) { listBox1.Items.Add(tp); }
this.listBox1.DisplayMember = "Text";
listBox1.SelectedIndex = 0;
}
void listBox1_SelectedIndexChanged(object sender, EventArgs e) {
this.tabControl1.SelectedIndex = listBox1.SelectedIndex;
//TabControl ist bisserl doof - es nimmt den Focus, auch wenn nur per Code selektiert wurde
listBox1.Focus(); //Focus zurück zur Listbox
}
}
}
Das ist jetzt die einfachste Ausführung.
Als Navi-Bar dient hier eine Listbox, da kann man natürlich auch was anderes nehmen - hauptsache, der User kann irgendwie den Index der gewünschten TabPage bestimmen.
Denkbar ist auch, TabControl abzuleiten, und da was dranzumachen, daß Reiter Enabled/Disabled sein können - das stellich mir als ein nettes Feature für Assis vor, wenn man sieht, was man schon geschafft hat, und was man noch muß.
Oder man macht die Reiter an/aus zu knipsen.
Ja, probierts dochma aus.
Der frühe Apfel fängt den Wurm.