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 :

[UltraGrid]forcer l'initialisation de la grille


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut [UltraGrid]forcer l'initialisation de la grille
    salut,

    je travaille avec de nombreux composants UltraGrid (Infragistics), placés sur différents TabPage.
    Durant l'iniatialisation de mon application, j'effectue certains traitements sur ces grilles (couleurs, redimensionnements, accès à certaines cellules particulières, etc..).

    Le problème : aucun moyen de faire ces modifications tant que la grille n'a pas été "affichée visuellement", en clair tant que le DisplayLayout n'a pas été initialisé.
    Solution temporaire : simuler un clic sur chaque onglet pour "initialiser" la grille, puis faire les modifs.
    Or : cela prend trop de temps au chargement de mon application. Même si je freeze l'affichage, c'est encore trop long.

    Auriez vous une idée pour forcer l'initalisation, sans avoir besoin de simuler l'affichage ?

    ps : selon infragistics, fournir une datasource force l'initialisation, encore plus avec un Databinding(). Mais encore une fois, je remarque qu'il faut que la grille soit affichée..

    ps2 : même avec un InitLayout(), ca ne marche pas..

  2. #2
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut
    Problème résolu. voila, pour les curieux :

    Sachant que mes UltraGrid sont en réalité des objets perso hérités de Ultragrid, le problème venait du fait que j'attribuais la datasource pendant la construction de l'objet, or ca n'est pas supporté nativement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class maUltraGrid : Ultragrid
    public maUltraGrid (DataSet d) : base()
    {
       this.Datasource = d;//le binding ne marche pas automatiquement
       this.DisplayLayout.Rows[0]...//Erreur
    }
    En clair, il faut déclarer sa grille, créer une nouvelle instance, l'ajouter au contrôle parent, PUIS lui indiquer sa datasource.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class maUltraGrid : Ultragrid
    public maUltraGrid () : base()
    {}
    ....
    {
       ...
       maUltraGrid = new maUltraGrid();//sans paramètre
       objetParent.Controls.Add(maUltraGrid);
       maUltraGrid.Datasource = monDataSet;//binding auto
       maUltraGrid.DisplayLayout.Rows[0]...//ok
       ...
    }
    Dans ce cas, l'initializeLayout est automatique, donc le binding aussi. Autrement, il faut afficher l'objet visuellement pour que le binding se fasse, impossible d'accéder au layout avant.

    Un peu comme si on devait faire à chaque fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TextBox t = new TextBox();
    maForm.controls.add(t);
    t.text = "bonjour";

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

Discussions similaires

  1. Initialisation de XMLModule
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 10
    Dernier message: 01/04/2003, 10h08
  2. Forcer jump short ou far
    Par Blustuff dans le forum Assembleur
    Réponses: 6
    Dernier message: 02/03/2003, 02h03
  3. initialisation Directinput avec delphi
    Par Madmaxx dans le forum DirectX
    Réponses: 1
    Dernier message: 21/02/2003, 17h37
  4. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 09h55
  5. Forcer l'affichage des dizaines...
    Par pataluc dans le forum Langage
    Réponses: 4
    Dernier message: 26/11/2002, 19h38

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