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 :

[c#][VS 2005] histoire de focus


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Par défaut [c#][VS 2005] histoire de focus
    Bonjour,
    j'ai une série de probléme de focus dans mon IHM à la création de nouvelles fenêtres.

    Mon premier problème débute lors du lancement de l'appli, j'ouvre un OpenFileDialog pour analyser un fichier. Cette analyse se fait dans une autre classe instanciée comme il faut. Celle-ci commence une analyse du fichier et si celui-ci est non valide une fenêtre d' "Attention" est ouverte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                    window = new Attention();
                    window.TopLevel = true;
                    window.ShowDialog();
    Donc la fenêtre se met au premier plan mais n'a pas le focus. J'ai essayé de faire un Activate mais rien ne se passe. A cet instant une seule fenêtre est ouverte celle de Attention. La fenêtre principale n'étant pas encore lançée.

    De plus quelque soit le résultat de l'analyse lors de l'ouverture de la fenêtre principale celle ci n'a pas le focus.

    Si quelqu'un à une piste ?

    merci

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    ShowDialog permet d'ouvrir une fenêtre modale. La fenêtre mère n'a donc plus le focus et est automatiquement désactivée jusqu'à ce que la fenêtre modale soit fermée.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Par défaut
    La fenêtre modale apparaît lorsque le choix du fichier n'est pas valide. Dans ce cas là c'est la seul fenêtre visible. (la fenêtre principale n'étant pas encore lancée)
    Cette fenêtre modale n'a pas le focus (sauf si c'est la seule fenêtre à l'écran) à son apparition. Cette fenêtre modale apparaît uniquement entre 2 OpenFileDialog.

    affichage de l'OpenFileDialog
    si le choix est valide : on ouvre la fenêtre principale
    sinon : on ouvre la fenêtre d'erreure qui lors de sa validation retourne sur le OpenFileDialog


    PS : je sais c'est tordu mais je trouvais ça pas mal à l'origine.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    lu en diagonale, mais pour éviter le showdialog et etre au dessus en laissant la possibilité d'avoir le focus sur celle d'en dessous y a topmost ou toplevel (un des 2 mais je sais plus lequel)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Par défaut
    La fenêtre est obligatoirement une fenêtre modal car elle indique la raison de l'erreur et doit prévénir l'uilisateur directement. Et la fenêtre est déjà en premier plan mais est "grisé" car elle n'a pas le focus.


    Pour information, faîtes simplement un nouveau projet avec ceci dans la form principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public Form1()
            {
                OpenFileDialog of = new OpenFileDialog();
                of.ShowDialog();
                InitializeComponent();
                this.TopMost = true;
            }
    A l'apparition de la Form1 celle-ci apparaît au-dessus mais sans le focus.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Hum ... pourquoi le code est dans le constructeur ?

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

Discussions similaires

  1. Histoire de focus
    Par faldo1 dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 19/03/2010, 01h10
  2. Histoire de focus
    Par Pymento dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/09/2009, 14h25
  3. Histoire de focus
    Par Laskar dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/04/2008, 15h27
  4. [VB 2005] Combobox, focus, clavier
    Par hulahup dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/02/2008, 18h50
  5. Histoire de Focus()
    Par softflower dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 23/09/2005, 14h32

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