Je vous suggère d'incorporer une référence à TabControl sur le formulaire dans la classe myclass.cs.
Vous pouvez le faire en définissant un constructeur pour myclass qui a pris un paramètre TabControl en paramètre ou en définissant une propriété publique dans myClass qui contient une référence à un objet TabControl. Les deux méthodes sont illustrées ici:
public class myclass
{
// using "automatic" properties : requires C# 3.0
public TabControl theTabControl { get; set; }
// parameter-less 'ctor
public myclass()
{
}
// optional 'ctor where you pass in a reference to the TabControl
public myclass(TabControl tbControl)
{
theTabControl = tbControl;
}
// an example method that would add a new TabPage to the TabControl
public void addNewTabPage(string Title)
{
theTabControl.TabPages.Add(new TabPage(Title));
}
}
Vous pouvez définir la référence TabControl de deux façons à partir du formulaire avec le TabControl:
myclass myclassInstance = new myClass(this.tabControl1);
ou
myclass myclassInstance = new myClass();
// do some stuff
// now set the TabControl
myClassInstance.theTabControl = this.tabControl1;
Une alternative est de exposer une propriété publique de type TabControl sur Form1: mais alors vous devez penser à comment myclass va "voir" l'instance "actuelle" de Form1 ... s'il y a plus d'une instance de Form1? Dans le cas où il y a un seul et unique TabControl, vous pouvez utiliser une propriété statique sur Form1 pour l'exposer.
Dans ce cas, "qui crée qui" devient intéressant: si le formulaire crée myclass; si myclass crée le formulaire; si myclass et le formulaire sont créés par une autre entité dans l'application: je pense que tous ces "vecteurs" porteront sur la meilleure technique à appliquer.
Je l'ai déjà fait, comme je l'ai dit dans ma question. –
Alors? quel est le problème ? Je l'ai fait sur un projet de test et ça marche! – Dani