Meilleur auteur de réponses
comment utiliser un evariable qui a été declaré dans une autre form

Question
-
Réponses
-
static class globals
{
public static string toto;
}
class Form1 : Form
{
...
void OnClick()
{
globals.toto = titi;
}
...
}
class Form2 : Form
{
...
void func()
{
var toto = globals.toto;
}
...
}
Paul Bacelar, Ex - MVP VC++- Marqué comme réponse Alex Petrescu vendredi 9 juillet 2010 07:45
-
Je pense avoir compris votre question.
Si vous reprenez mes solutions et mon exemple, il faut, pour la maintenabilité du code, que les forms ne se connaissent pas.
Donc, dans mes solutions, les données dont stockées dans une classe à part des formulaires, ainsi, une modification dans un formulaire n'impactera pas les autres formulaires.
Les variables ne doivent pas être déclarées dans form1, elles peuvent être modifiées ou initialisées dans form1.
Paul Bacelar, Ex - MVP VC++- Marqué comme réponse Alex Petrescu vendredi 9 juillet 2010 07:45
Toutes les réponses
-
Quand le modèle MVC vous manque ;-].
A l'arrache :
1- créez une classe simple dont une instance contiendra les données "globales", créez une instance de cette classe au démarrage de l'application et remplissez une propriété de chaque Form avec cette instance.
2- créez une classe n'ayant que des propriétés statiques contenant chacun les données "globales", les forms pourront y accéder directement via le nom de la classe (donc sans instance d'objet)
3- Design Patern Singleton avec une classe comme en 1.
Mais les 3 méthodes sont toutes dans la catégorie à l'arrache car une application doit toujours séparer l'IHM du traitement, et le traitement de la gestion des données. MVC
Paul Bacelar, Ex - MVP VC++ -
-
-
static class globals
{
public static string toto;
}
class Form1 : Form
{
...
void OnClick()
{
globals.toto = titi;
}
...
}
class Form2 : Form
{
...
void func()
{
var toto = globals.toto;
}
...
}
Paul Bacelar, Ex - MVP VC++- Marqué comme réponse Alex Petrescu vendredi 9 juillet 2010 07:45
-
Oui, bonjour merci des réponses que vous m'avez soumis (surtout l'exemple "mithik" mais très claire) mais en faite je me suis exprimé mal:
j'ai trois form 1,2et 3
après j'ai form1.cs /form2.cs/form3.cs
donc comment je pourrais procédé pour pouvoir utilisé les variable que j'ai déclare dans from1.cs dans les deux autres form?? tel est la vrai question
je suis navrais de cette mal entendue
cordialement.
-
Je pense avoir compris votre question.
Si vous reprenez mes solutions et mon exemple, il faut, pour la maintenabilité du code, que les forms ne se connaissent pas.
Donc, dans mes solutions, les données dont stockées dans une classe à part des formulaires, ainsi, une modification dans un formulaire n'impactera pas les autres formulaires.
Les variables ne doivent pas être déclarées dans form1, elles peuvent être modifiées ou initialisées dans form1.
Paul Bacelar, Ex - MVP VC++- Marqué comme réponse Alex Petrescu vendredi 9 juillet 2010 07:45
-
Bonjour jéMarley,
Si tu as 3 formulaire, c'est comme si t'avait 3 objets différents, donc, il faut dans chacun des formulaires, créer des propriétés pour les variables que vous avez déclarez, exemple:
propriété pour la variable : int x
void int X
{
get{return this.x;}
set{this.x=values;}
}
^^ -
Maintenant, il faudra juste que jéMarley fournisse une référence de chaque Form à chacune des autres.
2*3 initialisations en plus, cool. Et avec quatre Froms, 3*4 initialisations en plus, encore plus cool.
Si vous voulez programmer comme un sagouin, mais feignant, utilisez des propriétés "static", cela vous évitera ces passages de références entre Form. Mais le jour où vous aurez plusieurs Forms d'une même classe, vous allez pleurer.
Faites donc une classe distincte avec vos données, qui sera visible par toutes vos Forms.
Paul Bacelar, Ex - MVP VC++ -
bonjour,et je vous remerci tous et toute de m'avoir aidé .
vous savez je vient de débuter dans cette language donc je vais me facilité la vie,je vais faire en sorte que chaque form est accès aux donnés (les declarations vont être de simple copier collé) car j'ai que 3 form mais le jour ou j'aurai des dixaine de form je trouverais un autre moyen.
cordialement.
-
-
Bonjour,
Je vous remercie à tous pour les réponses. JeMarley, je vous prie de marques la solution qui vous a été utile.
Cordialement,
Alex
________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.