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

VB.NET Discussion :

Fenêtre FolderBrowserDialog n'apparait pas en premier plan par raccourci clavier [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut Fenêtre FolderBrowserDialog n'apparait pas en premier plan par raccourci clavier
    Bonjour,

    J'ai créé un raccourci clavier pour ma windows form afin d'ouvrir un FolderBrowserDialog.

    (Pour le raccourci clavier, j'utilise un Timer, permettant de rester à l'écoute des entrées claviers, peu importe où l'on se trouve sur windows).



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick, MyBase.Load
     
            Dim ctrlkey As Boolean
            Dim F11 As Boolean
     
            ctrlkey = GetAsyncKeyState(Keys.ControlKey)
            F11 = GetAsyncKeyState(Keys.F11)
     
     
            If ctrlkey And F11 = True Then
     
                If (DialogResult.OK = dialog.ShowDialog) Then
     
                    dirName = dialog.SelectedPath & "\"
                    f.ModifConfigDirectory("cheminCSV", dirName)
                    MsgBox("Le répertoire par défaut du fichier CSV est maintenant : " & dirName)
                Else
                    MsgBox("Veuillez choisir un répertoire correct")
                    Return
                End If
     
            End If
     
        End Sub
    PROBLEME 1 : La fenetre n'est pas en premier plan, et j'ai besoin qu'elle apparaisse en premier plan.

    PROBLEME 2 : La fenetre apparait plusieurs fois, alors que je n'ai fait qu'une seule fois la combinaison : CTRL + F11

    NOTE : Avec un autre timer, j'arrive à faire apparaître une fenetre classique en premier plan, alors pourquoi avec le FolderBrowserDialog, cela pose problème?

    (Si j'appuye sur le bouton du context Menu Strip, tout est OK la fenêtre est en premier plan, mais avec le raccourci clavier, c'est mort).

    Merci de bien vouloir m'aider.

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour Kurt225,

    Ton problème se situe au niveau de la portée de tes variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim ctrlkey As Boolean
    Dim F11 As Boolean
    Si tu les laisses dans le corps de ton timer alors la condition évaluée restera toujours la même !


    A+

  3. #3
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Merci Wallace pour ta réponse ^^

    J'ai déclaré mes variables en global, c'est à dire tout en haut du code.

    Cependant, j'ai toujours le problème de la fenêtre qui ne s'affiche pas en premier plan. Mon programme fonctionne avec un autre logiciel qui prend tout l'écran, et j'ai impérativement besoin que le FolderBrowserDialog s'affiche au dessus de cette application, sinon on ne peut pas savoir s'il y a eu des changements.

    J'ai tapé sur google "VB.NET FolderBrowserDialog foreground", mais je n'ai pas trouvé de cas similaire au mien.

    Sinon, dans le ContextMenuToolStrip, quand je clique sur le bouton, la fenêtre se met bien au premier plan.

    En tout cas bien vu.

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Mettre " Timer1.Enabled=false " et Timer1.Enabled=true" au début et à la fin de la procedure Timer1_Tick devrait au moins résoudre le problème des formes multiples.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Graffito, merci pour l'astuce, un soucis de moins!

    Maintenant, le problème, c'est que la fenêtre n'apparaît pas en premier plan avec le raccourci clavier. Une idée?

    En tout cas merci pour l'aide!

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Utiliser comme Timer un Control Winforms (System.WinForms.Forms.Timer) au lieu d'un autre type de timer (comme par exemple System.Timers.Timer).

    Sinon, essayer de mettre this.topMost = true juste avant le ShowDialog et this.topMost=false juste après.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #7
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Utiliser comme Timer un Control Winforms (System.WinForms.Forms.Timer) au lieu d'un autre type de timer (comme par exemple System.Timers.Timer).

    Sinon, essayer de mettre this.topMost = true juste avant le ShowDialog et this.topMost=false juste après.
    J'ai utilisé la deuxième méthode, et ça marche. Merci mille fois!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/03/2010, 09h48
  2. pb pop up qui n'apparait pas en avant plan sous FF
    Par gloglo dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 05/07/2008, 13h03
  3. Réponses: 1
    Dernier message: 09/02/2008, 18h55
  4. [VBA] Formulaire pas en premier plan
    Par dalmasma dans le forum VBA Access
    Réponses: 6
    Dernier message: 20/07/2007, 16h19
  5. <div> ne passe pas au premier plan
    Par Franck2mars dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 30/05/2007, 14h47

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