Atteindre les variables de la Form princale depuis une autre Form - C#/.NET managed - Programmation
Marsh Posté le 27-06-2005 à 14:57:44
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
Marsh Posté le 27-06-2005 à 15:03:07
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 !
Marsh Posté le 27-06-2005 à 15:05:13
Ben logique, vu qu'elles sont private... Propriétés, mec, propriétés
Marsh Posté le 27-06-2005 à 15:14:33
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 ; }
}
Marsh Posté le 27-06-2005 à 15:26:09
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
Marsh Posté le 27-06-2005 à 15:35:00
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...
Marsh Posté le 27-06-2005 à 15:45:27
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
Marsh Posté le 27-06-2005 à 15:46:26
Ben déjà le paramètre dans ton constructeur, et aussi ta propriété owner
Marsh Posté le 27-06-2005 à 15:55:59
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
Marsh Posté le 27-06-2005 à 14:53:07
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 :
Dans la 2nde form :
déclaration d'un owner membre de la classe
qui est alimenté dans le constructeur
Mon problème est donc que je n'arrive pas à atteindre les variables membres ou les composants de ma MainForm
Merci de votre aide