J'ai collé deux fonctions de mon code. Ils servent à ajouter un onglet dans tabcontrol et à supprimer un onglet dans tabcontrol. Les deux fonctions sont dans le même formulaire où tabcontrol réside.Comment trouver l'onglet dans un tabcontrol pour le fermer en utilisant l'application C# windows
Je suis capable d'ajouter les onglets dans le tabcontrol avec facilité. J'appelle AddTab() d'une autre classe. Et ça fonctionne parfaitement. J'essaye de faire la même chose pour enlever un onglet d'une autre classe. Mais tabpage t renvoie toujours null même s'il y a encore deux onglets dans mon tabcontrol.
Qu'est-ce que je manque?
public void AddTab(string strProcessName)
{
try
{
Global.ExistingTabProcessNames.Add(strProcessName);
this.Show();
//this below line dosent makes duplicate tabs.
TabPage tp = new TabPage();
tp.Text = strProcessName;
tp.Name = strProcessName;
tabControl1.TabPages.Add(tp);
//Activate the newly created Tabpage.
tabControl1.SelectedTab = tp;
tabControl1.ItemSize = new Size(200, 32);
tp.Height = tp.Parent.Height;
tp.Width = tp.Parent.Width;
}
catch (Exception ex)
{
}
}
public void RemoveUnusedTabs(string strTabToRemove)
{
TabPage tp = tabControl1.TabPages[strTabToRemove];
tp.Controls.Remove(this);
tabControl1.TabPages.Remove(tp);
}
J'appelle les RemoveUnusedTabs d'une autre classe comme ci-dessous ..
// créer une instance pour cette classe. Barre des tâches RemoveTabs = nouvelle barre des tâches(); RemoveTabs.RemoveUnusedTabs (strTabtoRemove);
Quelle est l'intention de tp.Controls.Remove (ce); dans RemoveUnusedTabs()? Pouvez-vous également publier le code appelant RemoveUnusedTabs() –
Ajout du code pour appeler la fonction. Juste en créant une instance pour la classe et appelez la fonction. C'est tout?? aucun problème ?? c'est ainsi que je fais ma fonction d'ajout aussi .. – Anuya
@Frank Bollack, de toute façon l'onglet tp renvoie NULL dans la première ligne elle-même .... @ .... TabPage tp = tabControl1.TabPages [strTabToRemove]; – Anuya