Envoyer les valeurs d'une forme à une autre forme
Je veux transmettre des valeurs entre les deux Formes (c#). Comment puis-je le faire?
J'ai deux formes: Form1 et Form2.
Form1 contient un bouton. Quand je clique sur ce bouton, Form2 devrait s'ouvrir et Form1 doit être en mode inactif (j'.e pas sélectionnable).
Form2 contient une zone de texte et un bouton envoyer. Lorsque je tape un message dans Form2 de la zone de texte et cliquez sur le bouton envoyer, le Form2 doit la fermer et Form1 devrait mettre en évidence la valeur soumises.
Comment puis-je le faire? Quelqu'un peut-il m'aider à faire cela avec un exemple simple.
- Avez-vous obtenu un exemple pour cela ?
Vous devez vous connecter pour publier un commentaire.
Il existe plusieurs solutions à cela, mais c'est le modèle que j'ai tendance à utiliser.
Et...
public Form2(string qs):this(){}
le formulaire ne sera pas montré bien.Définir une propriété
Dans le
form2
Obtenir des données
form1
etform3
Après une série de luttes pour la transmission des données à partir d'une forme à une autre, j'ai enfin trouvé une réponse stable. Il fonctionne comme un charme.
Tout ce que vous devez faire est de déclarer une variable comme
public static datatype 'variableName'
dans une forme et d'affecter la valeur de cette variable à laquelle vous souhaitez passer à une autre forme et d'appeler cette variable dans une autre forme en utilisant directement le nom du formulaire (Ne pas créer un objet de cette forme de variables statiques peuvent être accessibles directement) et l'accès à cette variable la valeur.Exemple de ce type est,
Form1
Form2
Déclarer une chaîne publique en
form1
Bouton de
form1
Pour envoyer des données à
form1
vous pouvez essayer de tout événement et le code suivant dans l'événementMaintenant, après la clôture de
form2
et l'ouverture deform1
, vous pouvez utiliser les données renvoyées dansgetdata
chaîne.J'ai travaillé sur divers winform projets et les applications devient de plus en plus complexe (plus les dialogues et les interactions entre eux), puis j'ai commencé à utiliser certaines de concours complet du système pour m'aider, parce que la gestion de l'ouverture et de la fermeture de windows manuellement sera difficile à maintenir et à développer davantage.
J'ai utilisé CABINE pour mes applications, il a un concours complet du système mais c'est peut-être trop dans votre cas), Vous pourriez écrire vos propres événements pour les applications plus simples
déclarer chaîne dans form1
public string TextBoxString;
dans form1 événement click ajouter
dans form2 constructeur
dans form2 caisse variable Form1 firstformRef;
Form1
? Pourquoi ne pas passerthis
à laForm2
constructeur?De Code De Form1 :
Form2 Code :
Ça Marche!!!
Dans ce code, vous pouvez transmettre un texte à Form2. Form2 montre que le texte dans textBox1.
Types d'utilisateur le nouveau texte dans textBox1 et appuie sur le bouton submit.
Form1 attrape que le texte et l'affiche dans une zone de texte sur Form1.
Et c'est de code de Form1:
vous pouvez passer en paramètre de la zone de texte de la Form1, comme ceci:
Sur le Formulaire 1 buttom gestionnaire:
Sur le Formulaire 2
Les constructeurs sont les meilleurs moyens pour transmettre les données entre les formes ou les Objets graphiques que vous pouvez faire cela.
Dans la form1, cliquez sur le bouton, vous devriez avoir:
Dans le formulaire 2, lorsque l'utilisateur clique sur le bouton, il doit avoir un code comme ceci ou similaires:
Une fois à l'intérieur de la forme de la charge de la formule 1, vous pouvez ajouter du code pour faire quelque chose que vous obtenez les valeurs de constructeur.
Ok, donc
Form1
a une zone de texte, tout d'abord, vous devez définir ceForm1
zone de texte dans la textbox de la propriété.De Code De Form1:
Passer
Form1
commethis
dans le constructeur.Code Form2:
Comment transmettre les valeurs de la forme à une autre forme
1.) Goto Form2 puis Double-cliquez dessus. Le code de type ce.
2.) Goto Form1, puis Double-cliquez dessus. Le code de type ce.
//À votre bouton de commande à Form1
C'est très simple.
supposons que vous avez 2 fenêtre de formulaire Form1 et Form2 et vous souhaitez envoyer le dossier de la textbox1 de Form1 pour Form2 et d'affichage de ce dossier dans label1 de Form2;
puis dans Form2 créer un label dont le nom est label1 et accédez à la propriété de label1 et la valeur "Modificateurs'=public et dans le Formulaire de créer une zone de texte avec l'id textBox1 et un bouton de nom de soumettre ensuite écrire le code suivant dans l'événement clic du bouton
thats it...
de cette façon, vous pouvez lier dataset enregistrement à une autre forme du datagridview......
Vous pouvez faire usage d'une approche différente, si vous le souhaitez.
En Utilisant Le Système.Action
Vous pouvez la considérer comme une fonction de rappel transmis à l'enfant forme.
OpenForms Méthode
Cette méthode est facile (2 lignes). Mais ne fonctionne qu'avec les formes qui sont ouvertes.
Tout ce que vous devez faire est d'ajouter ces deux lignes à l'endroit où vous souhaitez passer quelques données.
J'ai donné de ma réponse à une question similaire ici
Vous pouvez utiliser cette;
Form1 cliquez sur button1
Et les ajouter à Form2
Form2 cliquez sur button1
si vous modifiez les Modificateurs de Propriété d'un contrôle dans un Formulaire pour le Public, un autre Formes peuvent accéder à ce contrôle.
f.e. :
Comment sur l'utilisation d'un Événement public
Je voudrais faire comme ceci.
et de l'appeler à partir de Form1 comme ça.
Puis, Form1 pourrait obtenir un texte à partir Form2 quand Form2 est fermé
Merci.