begin process at 2012 02 09 10:56:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Passage de variables Form / Class


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Passage de variables Form / Class

samedi 28 juin 2008 à 17:20:03 | Passage de variables Form / Class

ansizak

Bonjour,

Je travaille sur une application dans laquelle ej dispose d'un module de configuration.
j'ai deux Form:
- la principale
- la fenetre de configuration

je dispose d'une class dans laquelle je souhaite stocker mes variables pour les utiliser dans les 2 Forms

Au lancement, la form 2 se charge automatiquement obligeant l'utilisateur à entrer ses paramètre de configuration qui sont alors stockés dans les variable de la class.
Lorsque je reviens dans la Form 1 mes variable contenues dans la class sont toutes nulles.. pourquoi ?

Je pense que mon problème provient de la manière dont je déclare la class dans les form mais j'avou ne plus rien y comprendre. Voici un extrait du code de:

- Ma Form1:

public partial class Form1 : Form
    {

        Class1 s = new Class1();
        Form2 settings = new Form2();

        public Form1()
        {
            InitializeComponent();
            settings.ShowDialog();
            load_favourite();
         }

etc..
    }

Ma Form2 :

public partial class Form2 : Form
    {
       
        Settings_var s = new Settings_var();

        public Form2()
        {
            InitializeComponent();
            test_settings();
            load_settings();
            test_favourite();
            create_temp();
        }
    }

Merci par avance de m'éclairer..

Cordialement,
Anz.
samedi 28 juin 2008 à 17:24:52 | Re : Passage de variables Form / Class

ansizak

Veuillez ne pas tenir compte du code de la form2, une erreur s'y est glissée, le voici:

public partial class Form2 : Form
    {
       
        Class1 s = new Class1();

        public Form2()
        {
            InitializeComponent();
            test_settings();
            load_settings();
            test_favourite();
            create_temp();
        }
    }

samedi 28 juin 2008 à 21:09:06 | Re : Passage de variables Form / Class

MorpionMx

Membre Club Administrateur CodeS-SourceS
Salut,

Ton probleme, vient du fais que tu aies 2 instances différentes de Class1

Au choix, soit tu fais de Class1 une classe statique, qui te permettra de partager certaines données entre chacune de tes classes, (si c'est ton but) ou alors tu  utilises des propriétés publiques dans ta Form2, que ta Form1 ira récuperer.

Mx
MVP C#
 

samedi 28 juin 2008 à 23:41:38 | Re : Passage de variables Form / Class

didi2005

Bonjour,

Oui, MorpionMx a raison ton problème ce que tu ne travaille pas avec la même instance tu peux changer ça pas les deux méthodes de Form : Show() et  Hide().

i have a dream
dimanche 29 juin 2008 à 10:32:30 | Re : Passage de variables Form / Class

MorpionMx

Membre Club Administrateur CodeS-SourceS
Salut,

Transformation de ton code sans passer par une classe/variable statique

Form1 :

privateClass1 s;
public Form1()
{
   InitializeComponent();
   using (Form2 settings = newForm2())
   {
      if (settings.ShowDialog() == DialogResult.OK)
      {
         this.s = settings.Settings;
       }
     }
      LoadFavourite();
}
Form2 :

privateClass1 s = newClass1();
publicClass1 Settings
{
   get { returnthis.s; }
 }

public Form2()
{
      InitializeComponent();
      TestSettings();
      LoadSettings();
      TestFavourite();
      CreateTemp();
}
A la fermeture de Form2, si l'utilisateur valide, il te faut affecter sa propriété DialogResult à DialogResult.OK

Autrement, n'hésite pas a respecter les conventions de nommage des tes variables/classes et de bien nommer tes variables, afin d'améliorer la lisibilité du code

Mx
MVP C#
 

dimanche 29 juin 2008 à 13:26:42 | Re : Passage de variables Form / Class

ansizak

Oooh merci !

Vous me rendez un énorme service puisqu'il s'agit d'un problème qui m'ennuie depuis longtemps.
Merci encore !! :-)

Cordialement,
Anz.
dimanche 29 juin 2008 à 13:55:34 | Re : Passage de variables Form / Class

ansizak

Me revoilà, :s

J'ai utilisé la transformation que tu m'a indiqué Morpion, mais j'obtiens le message d'erreur de compilation: "accessibilité incohérente: le type de propriété  Mon_Prog.Class1 est moins accessible que Mon_Prog.Form2.Settings

De plus, ma Form2 ne dispose pas de propriété DialogResult...

J'ai du mal comprendre, pourrais-tu me donner des précisions supplémentaire ?

Merci encore !

P.S: n'existe -t-il pas une méthode simple qui permet de créer une classe de variables communes et utilisables par toutes les autres Form ?

Cordialement,
Anz.

dimanche 29 juin 2008 à 14:04:04 | Re : Passage de variables Form / Class

MorpionMx

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

C'est parce que tu n'as pas déclaré ta classe Class1 comme public ou internal (auquel cas, tu déclareras aussi tes variables en internal). Si tu en spécifies pas le modificateur d'acces, tes classes / membres seront private par défaut.
Pour en savoir plus sur les modificateurs d'acces : [ Lien ]

Pour répondre a ton PS, pour faire ca tu peux utiliser des variables static.(voire une classe static si tu veux une classe spécialement là pour partager des parametres, constantes, ...).  Plutot qu'un exemple, autant te rediriger directement vers la MSDN : [ Lien ] 




Mx
MVP C#
 

dimanche 29 juin 2008 à 14:26:02 | Re : Passage de variables Form / Class

ansizak

Parfait ! Une class static correspond complétement à mes besoins.

Re - Merci de m'avoir fait comprendre autant de notions aussi vite :)

Cordialement,
Anz.
dimanche 29 juin 2008 à 14:36:51 | Re : Passage de variables Form / Class

MorpionMx

Membre Club Administrateur CodeS-SourceS
Pas de quoi

Mx
MVP C#
 



Cette discussion est classée dans : form, public, class, form2, settings


Répondre à ce message

Sujets en rapport avec ce message

Envoyer une variable d'une Form à l'autre :s [ par ansizak ] Bonjour, je travaille sur un programme dans lequel je charge un fichier xml dans un datatgrid en vue de modification.Ensuite lorsque l'utilisateur cli Problème d'héritage et de type de retour [ par LTourist ] Plop,Alors j'expose rapidement mon problème et le plus simplement possible :)public abstract class A{public C plop();}public class B:A{public override Afficher un deuxieme form [ par med_angelo ] Bonjours tout le mondeJe suis un nouveau utilisateur C#,mon application comprend 2 form,la form1 contient un bouton qui parmet d'afficher la form2,que Erreur dans le constructeur d'un form [ par med_angelo ] Bonjour tout le mondemon probleme est le suivant :j'ai deux form (Form1 et Form2) et un repertoire metier qui contient une classe (Utilisateur)l'affic Detecter si une form est ouverte [ par olibara ] BonjourVoici la situation et ma questionDans une form Form1Dans une fonction J'ouvre une fenetre de dialogue non modale Form2 et lui passe une datatab De Form1 a Form2. [ par leonardo14 ] Bonjour, voila jai 2  probleme. Le premier est que jai cree un project avec 2 form : Form1 et  Form2....Form1 est ma form principale et ma Form2 est l Dialogue entre form [ par olibara ] Afin de pouvoir dialoguer entre deux form, Il me semble que c'est a coup d'event et sans doute de quelque variables a passer que je dois travailler Dessin effacé par un form avec la class Graphics [ par metos ] Bonjour,     J'utilise la classe graphic pour dessiner des traits, le problème c'est que si une Form passe devant les traits sont effacé, comment puis Form pour mettre les valeurs de config.setting [ par olibara ] Bonjour Pour ne pas réinventer la roue je me demanse s'il existe un template de form de settings ? Lors du design d'un projet, on peut prevoir un Conversion object vers class [ par Sillymind ] Bonjour,Je débute en C# alors SVP soyez indulgeant.J'aimerai savoir s'il est possible de créer une variable de classe qui pourrait pointer sur n'impor


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,218 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales