Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1443 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Atteindre les variables de la Form princale depuis une autre Form

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Atteindre les variables de la Form princale depuis une autre Form

n°1132352
lordkoko
Posté le 27-06-2005 à 14:53:07  profilanswer
 

Bonjour,  
 
Je travaille sur une application Windows codée en C#.
 
J'ai ma MainForm qui instantie une seconde form dans laquelle l'utilisateur saisi un paramètre.  
 
Cette seconde Form doit utiliser ce paramètre pour modifier un élément de la MainForm (juste avant le close).  
 
Soucis :  
je n'arrive pas à atteindre les variables membres ou les composants de ma MainForm  :??:  
 
Appel de la seconde Form depuis la MainForm :  

Code :
  1. F_NouvelleForm Form2 = new F_NouvelleForm(this);
  2. FormND.ShowDialog(this);


 
 
Dans la 2nde form :  
déclaration d'un owner membre de la classe  

Code :
  1. private System.Windows.Forms.Form owner;

 
 
 
qui est alimenté dans le constructeur  

Code :
  1. public F_NouvelleForm(System.Windows.Forms.Form p_MainForm)
  2. {
  3. owner = p_MainForm; 
  4. ...
  5. }


 
 
Mon problème est donc que je n'arrive pas à atteindre les variables membres ou les composants de ma MainForm  
 
Merci de votre aide

mood
Publicité
Posté le 27-06-2005 à 14:53:07  profilanswer
 

n°1132364
FlorentG
Unité de Masse
Posté le 27-06-2005 à 14:57:44  profilanswer
 

Je ne vois vraiment pas quel est le problème :
1) Un message d'erreur ? Un problème réel ?
2) Revois tes notions d'orienté objet, la question ne se pose même pas [:spamafote]

n°1132375
lordkoko
Posté le 27-06-2005 à 15:03:07  profilanswer
 

Si j'expose le problème c'est qu'effectivement il y a un soucis.
 
Comme précisé plus haut dans ma seconde form j'alimente une variable owner de type System.Windows.Forms.Form avec l'instance de la première form (this) passée en paramètre du constructeur de ectte même seconde form.
 
Mon problème est le suivant :
sur cette variable owner je n'ai accès à aucune des propriétés ou varaibles de ma form principales.
 
S'il s'agit d'un problème de conception objet ou de méthode de développement pour ce genre de cas, je suis preneur pour tout conseil
 
Merci de votre aide !
 
 
 

n°1132379
FlorentG
Unité de Masse
Posté le 27-06-2005 à 15:05:13  profilanswer
 

Ben logique, vu qu'elles sont private... Propriétés, mec, propriétés ;)

n°1132398
lordkoko
Posté le 27-06-2005 à 15:14:33  profilanswer
 

j'ai positionné des variables en public pour test (comme variable memebre de ma Form principale) sans résultat non plus :
 
 
exemple :
public string _sProfil;
 
public string sProfil
{
 get { return _sProfil ; }
 set { _sProfil = value ; }
}

n°1132401
FlorentG
Unité de Masse
Posté le 27-06-2005 à 15:15:12  profilanswer
 

Et ta propriété owner dans l'autre Form, c'est wak ?

n°1132416
lordkoko
Posté le 27-06-2005 à 15:26:09  profilanswer
 

dans la form principale, je créé une instance de ma form secondaire en lui passant 'this' en paramètres.
 
le constructeur de la form secondaire prend un System.Windows.Forms.Form en paramètre.
 
Ce paramètre est utilisé dans ce même constructeur pour alimenté une variable membre de mon formulaire secondaire nommé owner et de type System.Windows.Forms.Form
 
Cette variable owner est private à la classe secondaire (la mettre en public ne change rien)
 
Et en fait lorsque je veux utiliser la variable owner je ne vois ni les contrôles de la form principale ni ses variables membres, m^mes celles qui sont déclarées en public
 
par contre, lorsque j'utilise le QuickWatch sur ma variable owner, en déployant l'arborescence des variables disponibles, j'ai bien entendu la même chose qu'avec la fenêtre d'auto-complétion mais j'ai aussi une section qui porte ce nom :  
 
- owner  
|_+ [MonNamespace.MainFrom]  
 
dans cette section j'ai tous les controles et variables de ma form principale mais je ne sais comment y accéder
 

n°1132430
FlorentG
Unité de Masse
Posté le 27-06-2005 à 15:35:00  profilanswer
 

lordkoko a écrit :

Ce paramètre est utilisé dans ce même constructeur pour alimenté une variable membre de mon formulaire secondaire nommé owner et de type System.Windows.Forms.Form


Ah ben forcément. Faut soit changer le type, ou alors caster. Mais le mieux est changer de type...

n°1132472
lordkoko
Posté le 27-06-2005 à 15:45:27  profilanswer
 

le paramètre this que j'utilise dans la form principale pour appeller mon formulaire secondaire est de type :
MonNamespace.MainFrom
 
et il est vrai que je recois du  
System.Windows.Forms.Form
dans la form secondaire
 
De quel variable ou paramètre faut il que je change le type pour pouvoir avoir accès aux variable de ma form principale depuis ma form secondaire ?
 
Merci de ton aide

n°1132476
FlorentG
Unité de Masse
Posté le 27-06-2005 à 15:46:26  profilanswer
 

Ben déjà le paramètre dans ton constructeur, et aussi ta propriété owner

mood
Publicité
Posté le 27-06-2005 à 15:46:26  profilanswer
 

n°1132502
lordkoko
Posté le 27-06-2005 à 15:55:59  profilanswer
 

Comme quoi tout s'arrange.
 
merci de ton aide
 
J'ai modifié le type des données recues en paramètres dans la seconde form.
 
Ces paramètres ne devaient pas être de type System.Windows.Forms.Form  mais du même type que la form principale : MainForm
 
et j'ai donc accès à toutes mes variables...  
 
Merci encore  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Atteindre les variables de la Form princale depuis une autre Form

 

Sujets relatifs
pb de boutons et de <form>Gérer form, picturebox
Cryptage variables urlTransmettre variables Javascript à PHP
[C#] Rendre une form transparente[pas de rep?] popup et variables de session...
Comment vérifier plusieurs variables d'un seul coup ?Problème avec des Variables de Session sous Free
Besoin d'aide avec les Variables d'Environnement en VBScriptPasser les variables d'un form en paramètre
Plus de sujets relatifs à : Atteindre les variables de la Form princale depuis une autre Form


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR