Cacher une TabPage / onglet

Signaler
Messages postés
8
Date d'inscription
lundi 19 septembre 2005
Statut
Membre
Dernière intervention
21 novembre 2007
-
Messages postés
8
Date d'inscription
lundi 19 septembre 2005
Statut
Membre
Dernière intervention
21 novembre 2007
-
Je developpe une application en C# sous visual studio 2005 et j'utilise le composant tabcontrol / tabpage, c'est-à-dire les boites à onglet.
Pour mon application, j'aimerais selon les cas pourvoir cacher ou montrer un tabpage/onglet et les controles ne fonctionnent pas.
J'ai testé :

tabPage1.Hide(); 
et le tabPage1.Visible = false
;
qui ne produisent aucune action.
J'ai également testé ces contrôles dans une appli test qui ne possède aucun code risquant de polluer le code mais toujours rien.
Pour le Hide, je crois que le controle n'est pas adapté.
Pour le visible, il n'est pas disponible dans la fenetre proposant les controles possibles mais on voit son état dans la fenetre espion quand on analyse le tabcontrol.
Quelqu'un(e) as t'il déjà rencontré ce problème et trouvé une solution ?
Grand merci d'avance

4 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
j'ai posté une source qui montre comment étendre le TabControl... il suffisait de faire une recherche ;)


 



http://www.csharpfr.com/codes/TABCONTROL-ETENDU_37075.aspx










Sébastien FERRAND
(

blog
)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
8
Date d'inscription
lundi 19 septembre 2005
Statut
Membre
Dernière intervention
21 novembre 2007

Bonjour,
J'avais déjà regardé ton code et celui ci ne m'avait pas vraiment inspiré.
Je viens d'y passer plus de temps mais l'inspiration n'est pas arrivée.
J'ai essayé  de tester quelques fonctions mais je n'ai pas su vraiment les implémenter.
Pour la évenement Mousedow j'ai écrit :


namespace

TestTabControl
{


public



partial



class



Form1
:


Form


{
Maf.Windows.Forms.

MafTabControl
myCtrl =

new
Maf.Windows.Forms.

MafTabControl


();


public


Form1()
{
InitializeComponent();
}


private



void
Form1_Load(

object
sender,

EventArgs


e)
{


this
.tabPage1.MouseClick +=

new



MouseEventHandler


(tabPage1_MouseClick);
}


private



void


tabPage1_MouseClick()
{


MessageBox
.Show(

"OK"


);
}}}





Et je retourne l'érreur :

Erreur 1 Aucune surcharge pour 'tabPage1_MouseClick' ne correspond au d‚l‚gu‚ 'System.Windows.Forms.MouseEventHandler'



Peux-tu me donner un exemple d'implementation  ?
D'autre part, ta classe implemente le mouse down alors que celui-ci est déjà implémenté en standard, qu'apporte au juste cette surcharge ?
Pour finir, j'espère qu'avec quelques explications je pourrais comprendre ton code mais je ne vois pas encore commendre ecrire la methode
'visible = true ou false'  pour faire disparaitre ou apparaitre ma tabpage.


Merci encore
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
J'implément les évènements MouseDown, MouseUp, Click, DoubleClick, Enter, Leave, Hover et Move oui... mais si tu regardes bien, c'est uniquement sur l'onglet et non sur la page.

Pour masquer un TabPage, si tu lis bien la documentation MSDN, ils disent ceci :
"To hide a tab in a [ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/CPref17/html/T_System_Windows_Forms_TabControl.htm TabControl], you must remove it from the control's [ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/CPref17/html/P_System_Windows_Forms_TabControl_TabPages.htm TabPages] collection."

--> Pour masquer un onglet (une page) d'un TabControl, vous devez le retirer de la collection de TagPages du contrôle.

Ce n'est pas très pratique en effet... mais ca se fait facilement.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
8
Date d'inscription
lundi 19 septembre 2005
Statut
Membre
Dernière intervention
21 novembre 2007

Merci pour ta réponse.
J'avais un peu supposé cette alternative mais j'espèrais que quelqu'un avait trouvé un TRUC plus simple.