2009-12-21 4 views
0

J'ai une application de formulaires .NET en utilisant un onglet de contrôle avec plusieurs onglets. Il y a quelques éléments (un bouton et quelques zones de texte) qui doivent être affichés sur chaque onglet. Plutôt que de créer 5 éléments séparés (y compris toutes les propriétés appropriées), existe-t-il un moyen de créer des "liens" vers un élément?Comment créer une copie/un lien d'un élément utilisateur dans un contrôle onglet?

Par exemple, lorsqu'un événement se produit, j'ai besoin d'une zone de texte pour afficher les mêmes informations dans chaque onglet. En l'état, je dois créer une nouvelle zone de texte pour chaque onglet, puis écrire explicitement dans chacun d'entre eux. Il serait plus facile d'écrire dans une seule zone de texte, puis de considérer les autres "liens" qui se mettent automatiquement à jour.

Répondre

2

Ces contrôles devraient vraiment être ailleurs que sur un TabPage. Mais vous pouvez obtenir ce que vous voulez en implémentant l'événement SelectedIndexChanged et changer le parent du contrôle. Cet exemple de code conserve la zone de texte sur l'onglet sélectionné:

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { 
     textBox1.Parent = tabControl1.SelectedTab; 
    } 
1

Désolé, il n'y a aucun moyen de le faire. Les contrôles sur un formulaire sont childen de cette forme, ils ne peuvent pas être simultanément des enfants de formes multiples. (un onglet est essentiellement un sous-formulaire).

Vous pouvez soit créer un tableau de références à toutes les zones de texte que vous voulez avoir le même comportement, et les écrire toutes lorsque vous écrivez dans l'une d'entre elles. Ou conserver le texte à un endroit en dehors de la zone de texte, et mettre à jour la zone de texte sur l'onglet visible chaque fois que l'utilisateur change d'onglet.

Questions connexes