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 :

[VB2005] Initialiser un UserControl


Sujet :

Windows Forms

  1. #1
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut [VB2005] Initialiser un UserControl
    Bonjour,

    Je cherche la meilleure solution pour initialiser un UserControl auquel je veux passer une datatable en paramètre.
    Ma solution pour l'instant est de donner une propriété publique à ce contrôle et de l'ajouter dynamiquement dans mon aplli principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    uscCtrl = new MonControle
    uscCtrl.Dtt = UneDatatable
    frm.controls.add uscCtrl
    Ca marche, mais par simple curiosité, n'y aurait-il pas moyen de faire un appel comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uscCtrl = new MonControle(UneDatatable)
    En surchargeant le Load par exemple, ou quelque chose approchant ?

    Ainsi, je pourrais ajouter mon contrôle dans l'IDE sans que cela me pète au nez au chargement.

    A quoi ça sert ? A rien, je sais, mais je suis curieux.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Par défaut
    J'aurais une tendance à dire, oui ca marche

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Certes, je pense que la théorie doit marcher, mais je n'arrive pas à l'appliquer.
    Pour être clair et avouer mon impuissance, la question tombe : comment overrider/overloader l'événement Me.Load ? (ouah, deux néologismes à la suite, veuillez m'excuser.)

  4. #4
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Pk tu ajoute ton control dynamiquement ? J'imagine que la raison est parce que le designer de VS te lance une exception!!

    Si c'est le cas, utilise
    if (DesignMode) return dans ton load.
    Cependant, fait attention si tu as des membres static car meme le designer doit les interpreters meme si tu est en designMode.

    Ensuite, tu as seulement as utiliser une propriété publique pour setter ta datatable

    MonCtl.Property = ma_datatable

  5. #5
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Bonjour,

    Cela ne marche pas, ou plutôt pas tout à fait.
    Mon problème est que j'ai un datagridview dans mon controle, et je veux le lier à une datatable qui serait justement mon paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dtgGrille.datasource = dttParam
    Le return dans la load marche bien, mais il tente quand même de "binder" la grille et la table. Et comme je n'ai pas encore fourni le paramètre => boum.

  6. #6
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Dans ta propriété tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private DataTable _table = null;
    public DataTable Table
    {
     get { return _table;}
     set 
     { 
     if (value == null) return; 
      _table = value 
     MaGrid.DataSource= _table;
     MaGrid.DataBind();
     ...etc...
     } 
    }

  7. #7
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Exact, ça roule.
    Merci de ton aide.

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

Discussions similaires

  1. Problème d'initialisation d'une DependencyProperty dans un UserControl
    Par seiryujay dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 30/10/2008, 14h46
  2. Initialisation des control dans mon UserControl
    Par UNi[FR] dans le forum ASP.NET
    Réponses: 3
    Dernier message: 24/04/2008, 10h45
  3. Problème d'initialisation d'un booléen dans un UserControl
    Par -Jolan- dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/02/2007, 21h58
  4. Réponses: 1
    Dernier message: 10/11/2006, 21h08
  5. Réponses: 3
    Dernier message: 02/10/2006, 13h20

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