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 :

Appel de fonction d'un UserControl depuis une Form


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 58
    Points : 42
    Points
    42
    Par défaut Appel de fonction d'un UserControl depuis une Form
    Hello,

    Ma question est simple, comment puis-je appeler une fonction d'un userControl depuis un Form du même projet? Je sais que normalement il faut la déclarer en "Internal " (voire "public") mais cela ne fonctionne pas.
    J'ai donc d'un côté mon UserControl avec la fonction à appeler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class ucObjet : System.Windows.Forms.UserControl
    {
    : 
    :
        public void rechObjet(int id_item)
        {
               :
               :
        }
    :
    :
    }
    Pour l'appel, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void listView1_DoubleClick(object sender, System.EventArgs e)
    {
        ucObjet.   ...........        
    }
    Qu'est-ce qui cloche??
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    c'est pas via le nom de ta classe que tu appelles ta méthode mais via le nom de l'instance que tu en as crée...

    Donc, tu dois avoir un ucObject1 (par defaut le nom fourni par le designer windows) et tu fais ucObject1.rechObjet(...)

    Voila

    The Monz, Toulouse

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 58
    Points : 42
    Points
    42
    Par défaut
    Où puis-je voir le nom de l'instance car "ucObjet1" ne fonctionne pas...

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    bon,

    ton userControl, tu l'as inséré via le designer ?

    si c'est le cas, tu le selectionnes et tu regardes son nom dans la fenetre de propriété

    et si tu ne l'inseres pas via le designer, ya bien un moment ou tu fais :

    UcObject toto = new UcObject();

    si c'est pas le cas, je te conseille de prendre des cours ou de consulter des tutoriaux sur les bases de la programmation objet et du developpement C# en particulier

    The Monz, Toulouse

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 58
    Points : 42
    Points
    42
    Par défaut
    Bon...bizarre mais toujours pas de solution.
    Mon UserControl est affiché dans un Panel comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ucObjet toto = new ucObjet();
    panel1.Controls.Add(toto);
    Et dans ma Form (qui n'est pas celle dans laquelle a été chargé le UserControl) si je tape à l'endroit de l'appel "toto." , Visual Studio ne me propose rien derrière le point...

  6. #6
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Parce ton objet n'est pas déclaré au bon endroit. Il faut le déclarer comme variable membre de ta Form, avec par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ucObjet toto = new ucObjet();
    et ensuite tu pourras t'en servir dans ta Form.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 58
    Points : 42
    Points
    42
    Par défaut
    Je suis toujours là
    Ok pour l'appel de la fonction par la Form dans laquelle est chargé le UserControl mais pas depuis l'autre...

  8. #8
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Si Visual Studio ne te propose rien, c'est que la variable n'existe pas où tu te trouves. Si elle est présente dans FormA, tu ne pourras pas y accéder directement depuis FormB.

    Par exemple, il faudra passer à FormB une référence à FormA qui possédera une propriété te permettant d'accéder à l'objet.

    Revoit la notion de portée en général si tu as du mal avec ca

Discussions similaires

  1. Appel de fonction par SYS qui retourne une erreur
    Par tibal dans le forum PL/SQL
    Réponses: 3
    Dernier message: 15/12/2008, 23h32
  2. Définir un style dans un UserControl, depuis une application.
    Par orobin dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 14/03/2008, 23h04
  3. Réponses: 4
    Dernier message: 20/03/2007, 14h53
  4. Réponses: 3
    Dernier message: 07/03/2007, 11h38
  5. [BCB6]Appel d’une form depuis une form avec showmodal
    Par almisuifre dans le forum C++Builder
    Réponses: 4
    Dernier message: 13/11/2006, 19h14

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