IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Caster control en c#


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de Pedro Varela
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 84
    Par défaut Caster control en c#
    Salut,

    Je programme en VS2005, framework 2.0. Je developpe une application windows.
    Je veux faire communiquer 2 windows forms. L'un est Pére et l'autre est fils.
    Dans le formulaire pére je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((Form1)this.MdiParent).txtName.Text = "Text";
    J'obtiens cette erreur: Object reference not set to an intance of an object
    Vous pouvez me dire ou est la source d'erreur, et ce que je dois faire pour m'en débarasser?

    Merci

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    MdiParent contient null.

  3. #3
    Membre confirmé Avatar de Pedro Varela
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 84
    Par défaut
    C-á-d MdiParent contient null?

  4. #4
    Membre confirmé Avatar de Mast3rMind
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 226
    Par défaut
    Ça veut dire que ta form "père" n'a pas de parent.

  5. #5
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Les questions que je me pose en plus :
    • C'est du code dans ta forme fille ? Mère ?
    • Tu utilises le système MDI ?

  6. #6
    Membre confirmé Avatar de Pedro Varela
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 84
    Par défaut
    Salut,

    Le code est dans la forme Mère que je l'ai écrit. Je veux que lors de form_load(...) ça apparaît dans le titre de la forme fille.
    Voici le code complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
           Form1 frm = new Form1 ();
                    frm.MdiParent = this;
                    try
                    {
    //txtName est le nom d'1 control dans forme fille: Form1
                        ((Form1)this.MdiParent).txtName.Text = "Test";
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    frm.Show();
    En fait, de fille vers la mère fonctionne et le contraire non.

    Merci

  7. #7
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    J'ai l'impression qu'il y a quelque chose que je ne suis pas...

    txtName est un contrôle dans la form fille.
    Ton code vient de la form mère.
    Lors du load de la mère, tu instancie une fille en mettant dans MdiParent, la référence vers la mère.
    Et tout de suite après, tu récupères la référence mère (dans MdiParent) pour la caster en fille...

    Logique ça fonctionne pas, tu castes la référence de la mère en form fille.

    Donc code doit s'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frm.txtName.Text = "Test";

  8. #8
    Membre confirmé Avatar de Pedro Varela
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 84
    Par défaut
    En effet, mon code estdans la forme Mère.
    Je veux lors du Load de la forme fille txtName prend "Test"
    En fait, j'ai un menu dans la forme Mère. Lors que j'y click, la forme fille doit afficher et dans le control txtName avec le mot "Text"

    De fille vers la mére ça marche, mais de mère vers la fille ça marche pas. Ça me donne cette erreur: Object reference not set to an intance of an object

  9. #9
    Membre confirmé Avatar de Pedro Varela
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 84
    Par défaut
    Je vient de revoir mon code, et tu as en effet raison.
    C'est comme tu m'as indiqué qui doit être.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Caster dynamiquement des controles.
    Par piecot dans le forum Windows Forms
    Réponses: 10
    Dernier message: 03/02/2010, 18h27
  2. [VB6] [Interface] Nbre de contrôles maxi dans une feuille
    Par Midou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2002, 16h09
  3. [VB6] [Interface] Tester le Type de Controle
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 16/09/2002, 09h51
  4. [controle] propriété read only
    Par Fizgig dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/08/2002, 10h30
  5. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo