tonyledragon
Messages postés173Date d'inscriptionlundi 2 mai 2011StatutMembreDernière intervention13 décembre 2012
-
30 juin 2012 à 15:25
tonyledragon
Messages postés173Date d'inscriptionlundi 2 mai 2011StatutMembreDernière intervention13 décembre 2012
-
1 juil. 2012 à 20:02
Bonjour,Voila je débute sur c# et j'aimerais avoir votre aide pour un problème que depuis quelque jours je n'arrive a résoudre le voici :
J'ai deux Form je l’appellerais A et B
Form A s'ouvre au lancement puis il connecte le client puis je clic sur mon bouton qui ouvre le form B .Je Remplie des information puis j'ai un bouton que si je clic faut envoyer les donnée problème en et aucune TCPClient existe sur B donc je voudrais faire comme mon ancien langage l'appeler via le form A c'est a dire A.MaFonction("tststt")
Le probleme en et a part faire un nouvelle instance du form A il mais impossible d'y acceder .
Pouvez vous m'aider a que le Form B puis acceder a une function du form A ?
Merci d'avance
A voir également:
Problème pour accéder a une fonction d'une des forms
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 30 juin 2012 à 16:14
Bonjour,
Lors de l'appel à la Form B, passes-lui l'instance de la form A :
MonB.ShowPerso(Me)
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
Whismeril
Messages postés19025Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention19 avril 2024656 30 juin 2012 à 20:05
Bonsoir,
ayant eu ce genre de problèmes quand je suis passé de VB6 à C#, je vais développer un peu la réponse de NHenry.
L'utilisation de variables globales est déconseillée en C#, et donc les form n'en sont pas.
Une solution est effectivement de passer la référence de la form A en paramètre à la form B.
La méthode de NHenry est d'écrire une méthode ShowPerso avec FormA en paramètre dans laquelle tu affectes la référence à une variable locale à FormA:
//dans formB
FormA maFormA;
...
public void ShowPerso(FormA A)
{
maFormA = A;
this.Show();
}
....
//Dans formA
FormB B = new FormB;
B.ShowPerso(this);
Une deuxième méthode est de modifier le constructeur de FormB pour y passer le paramètre.
//dans formB
FormA maFormA;
...
public FormB(FormA A)
{
maFormA = A;
}
//dans FormA
FormB B = new FormB(this);
B.Show();