2010-05-28 12 views
0

Je suis en train d'écrire une application dont les changements de GUI dépendent de plusieurs conditions. J'ai implémenté ceci dans Qt4 et j'ai utilisé QStackWidget en interne (en fait, c'est une série de contrôles, dont un seul peut être visible à chaque fois). J'utilise actuellement un TabControl - quelles sont mes alternatives en C#?TabControl sans les onglets (QStackWidget en C#)

EDIT:

j'ai écrit une application Qt4 qui utilisait QStackWidget. Maintenant, je réécris la même application en C#. Aucun code n'est partagé, c'est une application différente.

+0

QT de C#? Vous feriez mieux de lister votre système d'exploitation et la version de votre framework. –

Répondre

0

Je ne suis pas au courant d'un contrôle intégré qui fonctionne comme QStackWidget, mais vous pouvez écrire une classe qui hérite de Panel, conserve ses contrôles enfants dans une liste interne, et suit le contrôle "en cours". Ajoutez des méthodes de commodité telles que NextPage, PreviousPage, SetPage, etc., qui prennent soin de montrer le contrôle enfant désiré et de cacher le reste.

+0

ok, mais pourquoi ne pas utiliser un contrôle simple, au lieu de panneau? – elcuco

+0

aucune raison particulière, c'est juste le contrôle que j'aime hériter quand je fais des conteneurs. de toute façon fonctionnera bien. – allonym

0

Si vous utilisez WinForms (C#), vous pouvez créer votre propre contrôle hérité de TabControl et ajoutez ceci:

public partial class TablessControl : TabControl 
    { 
     protected override void WndProc(ref Message m) 
     { 
      // Hide tabs in RunTime mode 
      if (m.Msg == 0x1328 && !DesignMode) 
      { 
       m.Result = (IntPtr)1; 
      } 
      // Hide tabs in DesignMode 
      else if (m.Msg == 0x1328 && DesignMode) 
      { 
       m.Result = (IntPtr)1; 
      } 
      else 
      { 
       base.WndProc(ref m); 
      } 
     } 
    } 
Questions connexes