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 :

SplitContainer imbriqué problème de splitterdistance


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien ES en informatique
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien ES en informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Par défaut SplitContainer imbriqué problème de splitterdistance
    Bonjour à tous,

    Voila mon problème, j'ai 2 splitContainer imbriqué, pour diviser ma fenêtre en 3.

    L'idée étant de sauvegarder la valeur de splitterDistance pour que lors d'une prochaine ouverture du logiciel, ces distances soient récupérées. Dons je sauvegarde les 2 splitterDistance dans un fichier text à la fermeture de la fenêtre et je les récupère à l'ouverture.

    La sauvegarde fonctionne bien mais par contre pour la récupération des valeurs c'est moins bien.
    Voici les deux lignes de code qui permettent cette récupération:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    splitCont1.splitterDistance = Globals.Params.Top;
    splitCont2.splitterDistance = Globals.Params.Middle;
    1e chose, si j'exécute, après avoir enregistré une première fois les paramètres, une exception arrive et me dit que la valeur du spliterDistance doit être compris entre MinSize et With-MinSize.


    Ok je comprends l'erreur mais si j'exécute pas à pas, lorsque j'arrive sur la deuxième ligne, j'ai ca:
    splitCont1.splitterDistance est égal à 61
    Globals.Params.Top est égal à 200
    C'est quand même bizarre que, juste après l'exécution de la ligne j'ai pas les même valeurs. Y as t-il un read only quelque part??
    Ensuite après l'exécution de la deuxième ligne j'ai l'erreur qui arrive comme affiché plus haut.

    Avant que vous me le demandiez, les valeurs dans Top et Middle sont correct.

    Merci 1000 fois à celui qui arrive à me décoincer.

  2. #2
    Membre averti
    Homme Profil pro
    Technicien ES en informatique
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien ES en informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Par défaut
    Bon ben voila,

    J'ai réussi à résoudre le problème, avec un peu d'aide.

    Les lignes permettant de récupérer la distance était exécuté sur l'événement "Load".
    Si je place ces lignes dans le constructeur, cela fonctionne mais dans le load.

    Si quelqu'un peut m'expliquer pourquoi, il est le bienvenu. Quoi qu'il en soit, ça fonctionne.

    Merci quand même

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 528
    Par défaut
    Un objet fenêtre .NET n'est pas automatiquement une fenêtre gérée par le gestionnaire de fenêtre de Windows.

    C'est un objet .NET comme un autre (en clair, son Handle de fenêtre n'a pas encore été créé dans le gestionnaire de fenêtre de Windows).
    Entre le constructeur de l'objet et l'appel de la méthode Load, .NET à déjà demandé l'handle de fenêtre au gestionnaire de fenêtre de Windows).

    Je pense que l'affectation de "splitterDistance" correspond à l'envoie d'un message à la fenêtre Windows (qui est le pendant système de la classe .NET).
    Hors, avant Load, comme il n'y a pas de Handle, ce message est perdu.

    En décalant vers la méthode Load, le message sera bien récupéré par la fenêtre Windows qui dialoguera avec le gestionnaire de fenêtre pour faire l'action demandée.

  4. #4
    Membre averti
    Homme Profil pro
    Technicien ES en informatique
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien ES en informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Par défaut
    Justement pas Bacelar,
    C'est l'inverse, dans load ca ne marchait pas et dans le constructeur ca marche.

    Et ce n'est pas une Form mais simplement un UserControl contenu dans une Form

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

Discussions similaires

  1. MYSQL => requête imbriquée = problème
    Par ambigua dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/04/2012, 18h09
  2. Boucle while imbriqué, problème de renvoi de valeur
    Par biche1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/09/2008, 17h09
  3. Class imbriqué : problème de delete
    Par Anium dans le forum C++
    Réponses: 10
    Dernier message: 18/01/2008, 20h28
  4. liste déroulante imbrique probléme pour simplifier
    Par popofpopof dans le forum IHM
    Réponses: 11
    Dernier message: 11/08/2007, 18h37
  5. [MySQL] Requetes imbriquées, problème de groupage
    Par cdelamarre dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2006, 21h16

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