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

C# Discussion :

Utilisation de la méthode "Add" pour ajouter des objets. [Débutant]


Sujet :

C#

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut Utilisation de la méthode "Add" pour ajouter des objets.
    Bonjour,

    Je débute avec C# et je voudrais ajouter par programme une comboBox sur une form.

    J'ai vue sur l'aide Microsoft un exemple de code du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void BTN_FONCTIONS_Clik(object sender, RoutedEventArgs e)
            {
                // Create an instance of the ListBox.
                ComboBox ComboFctn = new ComboBox();
                this.Controls.Add(ComboFctn);
                ComboFctn.Visibility = Visibility.Visible;
     
            }
    Mais Visual studio souligne en permanence "Add" avec le texte ci dessous :

    'object' ne contient pas de definition pour 'Add' et aucune méthode d'extension 'Add' acceptant un premier argument de type 'object' n'a ete trouvé (
    une directive using est-elle manquante ?)


    J'ai fait le point sur les using, tout y est.

    Du coup jje ne vois pas ce qui cloche ...


    Merci pour votre aide...

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Pas de problème pour moi avec ce code, après le mot clé this représente l'objet courant donc ça dépend ou ta fonction se situe (sous classe).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            private void button1_Click(object sender, EventArgs e)
            {
                ComboBox ComboFctn = new ComboBox();
                this.Controls.Add(ComboFctn);
            }

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut
    Merci d'avoir pris le temps de lire ma demande.


    Justement, j'ai du mal à me situer...

    Le code est appelé sur l'evenement "click" du bouton qui est lui même sur le form.


    Donc logiquement, le code est appelé depuis le form, donc "this" représente le form...?

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Oui ça fonctionne, j'ai refais le test.

    Post le code complet pour que nous puissions t'aider.

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    A tout hasard, ne travaillerais-tu pas en WPF et n'aurais-tu pas déclaré une variable nommée Controls de type Object dans la MainWindow ? Ceci pourrait expliquer le message (car Controls n'existe pas en WPF)
    L'exemple que tu donnes fonctionne en Windows Form, pas en WPF.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut
    J'ai recrée un nouveau projet pour repartir de zéro et pour avoir un code simple.

    Je travaille avec Visual Studio Community 2015, est-ce une version bridée ?




    J'ai toujours la même erreur sur controls.Add :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Drawing;
     
    namespace VCNET_TESTS_DEV
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            private object Controls;
     
            public MainWindow()
            {
                InitializeComponent();
            }
     
            private void BTN_CRT_CMBBOX_Click(object sender, RoutedEventArgs e)
            {
                // Create an instance of the ListBox.
                ComboBox ComboFctn = new ComboBox();
                this.Controls.Add(ComboFctn);
                ComboFctn.Visibility = Visibility.Visible;
            }
        }
    }

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Comme je le disais , tu crées un projet WPF et non pas Windows Form et ton code n'est pas compatible avec WPF !
    Crée un nouveau projet Windows Form et ça fonctionnera.

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut
    Bonjour ebastiien

    C'est exact, je bosse en WPF.

    Je viens de créer un projet en WinForm et effectivement le code fonctionne.

    Donc, si je comprends bien, en WPF, il n'y a pas moyen de créer dynamiquement des objets par programme ??

  9. #9
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Si, il y a moyen mais la philosophie est radicalement différente. Je te conseille d'abord de lire des articles et des docs avant de te lancer dans WPF. Ce n'est pas forcément intuitif.
    Par défaut, ta Form (Window) contient un Grid. Tu peux le nommer (dans le xaml avec un attribut Name) puis ajouter à ce grid ta combo (myGrid.Children.Add). La combo remplira entièrement le Grid...

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut
    Ok, Merci.

    Je vais lire des tutos la dessus...


    En tout cas merci pour les conseils.

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

Discussions similaires

  1. utiliser un script pour inserer des objets 3D
    Par s_mihai dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/08/2005, 13h52

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