Changer le texte d'une étiquette dans un autre formulaire en C #?
J'ai un label " LabelX1. C'est sur form2. Sur form1, j'ai un bouton. Je veux que le texte du bouton, être transféré à l'autre forme de l'étiquette. J'ai essayé
form2 frm2 = new form2();
frm2.labelX1.Text = this.button1.text;
Mais il ne fonctionne pas. Est-il facile, simple de faire cela?
source d'informationauteur Hunter Mitchell
Vous devez vous connecter pour publier un commentaire.
Vous devez exposer votre étiquette ou à ses biens.
Dans le formulaire 2:
Alors vous pouvez faire:
Vous pourriez modifier le constructeur de la Form2 comme ceci:
puis créer Form2 en passant dans le texte:
à l'intérieur de form2 écrire ce
ensuite, lorsque vous créez le Formulaire 2 ce faire
Ou vous pouvez le faire >>
Vous pouvez me labelX1 public et que cela fonctionne, mais il y a une meilleure façon de le faire
http://www.codeproject.com/Articles/14122/Passing-Data-Between-Forms
Plus simple est de faire labelX1 un membre du public de form2. Le problème que vous rencontrez est parce que, à partir de code de Form1 form2.labelX1 n'est pas visible. Dans form2 concepteur, vous pouvez allez dans les propriétés de labelX1 et de l'ensemble de la visibilité publique/interne.
Meilleure approche serait de les exposer labelX1.Le texte comme une propriété qui peut être défini dans le code de l'extérieur de la classe.
J'ai changé ma fenêtre parent de la propriété pour le code suivant:
Si vous avez besoin d'accéder à la form2 d'ailleurs dans votre code (comme appuyer sur un bouton par exemple), vous ne serez pas en mesure de voir l'exemple de la forme que vous créez. Pour résoudre ce que je peux créer une instance publique pour maintenir une référence à elle comme:
Puis, après que vous créez vous attribuer la nouvelle à votre instance publique:
Maintenant, vous pouvez référencer form2_pub tout au long de votre routines.
Fonctionne pour moi au moins.
Rappelez-vous, dans votre définition, vous pouvez exécuter n'importe quel autre code que vous voulez.
Par exemple, j'utilise la suite pour montrer ce que je veux sur une autre forme par tout simplement la mise en show_scanning vrai:
Avez-vous d'exception? Vous pouvez faire de la propriété publique sur form2, avec setter pour définir le texte sur l'étiquette, ou faire labex1 modificateur d'accès public et de définir directement. Il devrait fonctionner.