myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns
» Datenschutzerklärung
» Impressum

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Gemeinschaft » .NET-Komponenten und C#-Snippets » TabControl als Basis für Assistenten und sowas
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

TabControl als Basis für Assistenten und sowas

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
ErfinderDesRades
myCSharp.de-Poweruser/ Experte

avatar-3151.jpg


Dabei seit: 31.01.2008
Beiträge: 5.286


ErfinderDesRades ist offline

TabControl als Basis für Assistenten und sowas

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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:

C#-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.


Dateianhang:
unknown FrameSetLike00.zip (11,10 KB, 709 mal heruntergeladen)

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von ErfinderDesRades am 23.06.2010 16:11.

28.08.2008 17:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 10 Jahre.
Der letzte Beitrag ist älter als 10 Jahre.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 18.06.2019 06:51