2012-02-17 1 views

Répondre

4

La classe TabControl fournit un TabPages property qui renvoie un TabPageCollection contenant tous les TabPages dans le contrôle.

Vous pouvez donc utiliser le Item property pour récupérer le TabPage avec le nom spécifié.

Par exemple, si la page d'onglet que vous voulez est nommé "Bonjour", vous pouvez écrire:

var tabPage = myTabControl.TabPages["Hello!"]; 

Pour retirer la TabPage du contrôle, utilisez le RemoveByKey method:

myTabControl.TabPages.RemoveByKey("Hello!"); 

Bien entendu, pour que cela fonctionne, vous devez vous assurer que vous avez défini les touches de votre TabPage s pour qu'elles correspondent au texte de la légende qu'elles affichent.

+0

qui a été rapide, me battre à elle! – sambomartin

+0

Merci Cody! En regardant la réponse de LarsTech, devrais-je la jeter au lieu de l'enlever pour la mémoire? – atwellpub

+0

@atw Je ferais les deux, juste pour être du bon côté. Retirez-le d'abord, puis jetez-le. Mais vous pouvez vous en débarrasser simplement en le disposant ([référence] (http://stackoverflow.com/questions/1757116/remove-tabpage-dispose-or-clear-or-both)). –

2

Vous pouvez essayer quelque chose comme ceci: « Bonjour »

for (int i = tabControl1.TabPages.Count - 1; i >= 0; i--) { 
    if (tabControl1.TabPages[i].Text == "Hello!") 
    tabControl1.TabPages[i].Dispose(); 
} 

Je suppose que vous vouliez dire le « texte » du TabPage, depuis ne serait pas un nom valide pour un contrôle.

Remarque: ce code se débarrassera de tout TabPage qui dit "Bonjour!"

+0

La disposition d'une page à onglet alors qu'elle est toujours ajoutée à un contrôle de tabulation est-elle une bonne idée? – Blorgbeard

+0

@Blorgbeard Je ne pense pas qu'il y ait de danger. Le retirer ne l'élimine pas, et l'OP a dit qu'il voulait le "détruire". – LarsTech

+0

Retirer puis disposer Je pense que – sambomartin

Questions connexes