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 :

Empecher le load d'une fenêtre


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Par défaut Empecher le load d'une fenêtre
    Bonjour,
    J'aimerai savoir si il est possible dans le constructeur d'une windows form d'empecher la fenêtre de se charger ?
    Car quand je créé ma fenetre avec new fenetre (parametre),
    dans le constructeur je fais une requete sur le parametre pour savoir quoi afficher dans le formulaire. Hors il se trouve que quand ma requete ne renvoie rien, j'aimerai empécher le formulaire de s'afficher, et simplement mettre un MessageBox.Show("rien a afficher")

    Y a til un moyen dans le constructeur du formulaire de prévenir le load de la fenetre donc ? En gros d'annuler la création du formulaire donc, de renvoyer null par exemple ou n'importe quoi

    Des idées ?

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Il y a un problème de logique dans ton raisonnement. Une fenêtre (appelons la 'A') ne doit pas décider de s'afficher ou pas. C'est la fenêtre parent ('B') (ou quoi que ce soit qui doit afficher 'A') qui doit déterminer s'il faut afficher 'A' ou pas, et afficher ton message 'rien à afficher' le cas échéant.

    Pour faire un parallèle plus explicite, ce n'est pas toi qui a décidé de vivre, ce sont tes parents qui t'ont fait naitre... Je sais, c'est un peu capilotracté, mais c'est quand même l'idée.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par Raay
    Bonjour,
    J'aimerai savoir si il est possible dans le constructeur d'une windows form d'empecher la fenêtre de se charger ?
    Car quand je créé ma fenetre avec new fenetre (parametre),
    dans le constructeur je fais une requete sur le parametre pour savoir quoi afficher dans le formulaire. Hors il se trouve que quand ma requete ne renvoie rien, j'aimerai empécher le formulaire de s'afficher, et simplement mettre un MessageBox.Show("rien a afficher")

    Y a til un moyen dans le constructeur du formulaire de prévenir le load de la fenetre donc ? En gros d'annuler la création du formulaire donc, de renvoyer null par exemple ou n'importe quoi

    Des idées ?
    Moi j'ai pas très bien compris ton problème mais si tu veux empecher de loader une form et bah dans son évenement Load tu mets soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    me.hide
    'ou alors
    me.close 'mais je pense que cela va fermer ton programme
    Voila ++
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Par défaut
    je crois que tu dois mettre le close dans le constructeur de ta form (ie: dans le new)

    si malgré ça, la form s'affiche, c'est à dire que le .ShowDialog s'execute, je crois que tu dois déclarer une propriété dans la fenetre parente que tu mettra à jour dans le constructeur de la fenetre enfant en fonction de ton test, et aprés faire le test si le .ShowDialog dois s'exécuter ou pas(dans la fenetre parent). une execution pas à pas t'aidera beaucoup
    j'espere que j'ai été claire.

  5. #5
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Par défaut
    Merci des réponses

    Les Me.Close ou .hide, que ce soit dans le constructeur ou le load, ca ne semble pas fonctionner. (le load doit se faire juste avant le chargement je suppose)

    @ nkonito : Je vois à peu près ce que tu veux dire, ca revient un peu comme dit saumonAgile à faire le test dans la fenêtre parent, c'est surement ce que je vais faire

    @ SaumonAgile : Oui je me rends compte que ce n'étais pas très correct conceptuellement, que le test doit se faire avant. C'est surtout que ca simplifierait le travail, étant donné que je travaille sur un existant, que tout ca était bien en place mais qu'il ya un bug, alors ca aurait été plus simple de rajouter un test dans la classe de la fenetre elle meme.
    Je vais faire comme tu dis, et mettre sagement le test avant l'appel du constructeur, dans la fenetre parente. Seulement va faloir remanier un peu tout ce code pour ca, mais je devrais m'en tirer .

    merci encore

Discussions similaires

  1. Réponses: 10
    Dernier message: 30/03/2014, 17h27
  2. [WPF] Empecher le clic sur une fenêtre
    Par Johngtrs dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 13/12/2012, 01h39
  3. [C#] Problème d'affichage d'une fenêtre (event Load)
    Par PB-W dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/03/2006, 13h48
  4. [C#] Empecher le redimensionnement d'une fenêtre
    Par Sydaze dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/11/2005, 16h27
  5. icône d'une fenêtre fille
    Par bastien dans le forum C++Builder
    Réponses: 6
    Dernier message: 27/05/2002, 13h46

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