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

IHM Discussion :

Rendre le focus au Form appelant après fermeture Form appelé, et retrouver la roulette active .


Sujet :

IHM

  1. #1
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut Rendre le focus au Form appelant après fermeture Form appelé, et retrouver la roulette active .
    Bonjour,

    La roulette de la souris se désactive dans cette situation :

    J'ouvre le formulaire Form1 en mode dialogue. la roulette de la souris fonctionne.
    Depuis ce formulaire, j'ouvre le formulaire Form2 qui modifie ou pas un enregistrement du Form1.
    Si je ne modifie pas l'enregistrement et que je ferme Form2, je retourne sur Form1 et la roulette de la souris s'est désactivée,
    je dois faire un click dans le form1 pour qu'elle se réactive.

    J'aimerais ne pas avoir à faire ce click.

    j'ai essayé sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Dans Form2
    DoCmd.Close acForm, Me.name ' Ferme le formulaire
    Forms!Form1.setFocus
    Exit Sub
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Dans Form2
    DoCmd.Close acForm, Me.name ' Ferme le formulaire
    Forms!Form1.affecteFocus
    Exit Sub
     
    'Dans Form1
    Sub affecteFocus()
        Me.SetFocus
    End Sub
    Et bien d'autres combinaisons de code ...

    Merci d'avance pour vos suggestions.
    Bien cordialement

  2. #2
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Alors comme je n'arrive toujours pas à rendre le focus au formulaire Form1, j'ai cherché à lui simuler un click, ce qui comme je vous le disais réactive la roulette de la souris.

    Je n'ai pas trouvé comment simuler un click, mais j'ai trouvé que si j'envoie une touche ça marche aussi.
    j'ai choisi la touche "Tab"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Dans Form2
    DoCmd.Close acForm, Me.name ' Ferme le formulaire
    Forms!Form1.affecteFocus
    Exit Sub
     
    'Dans Form1
    Sub affecteFocus()
        SendKeys "{TAB}"
    End Sub

    Le problème est résolu puisque ça fonctionne, mais peut-être quelqu'un a uns solution plus adaptée à ce problème.
    Dans l'attente de mieux,
    Merci aux lecteurs.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Bonsoir

    Et en mettant le focus sur un contrôle ? (pas essayé, car je ne sais pas reproduire ta situation : désactivation de la roulette)

    Par contre, l'utilisation de SendKeys peut avoir des effets inattendus (déverrouillage du pavé numérique du clavier, ...). A utiliser avec modération.

  4. #4
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour,
    Titi95 j'ai déjà essayé
    Et en mettant le focus sur un contrôle ?
    sans succès, et ça aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Dans Form2
    DoCmd.Close acForm, Me.name ' Ferme le formulaire
    Forms!Form1.setFocus
    Forms!Form1.form!NavWeb.setFocus
    Exit Sub
    Par contre, l'utilisation de SendKeys peut avoir des effets inattendus
    c'est pourquoi ma solution ne me satisfait pas pleinement et du coup je l'abandonne.

    J'ai donc chercher encore à mettre le focus sur le contrôle comme tu me préconises.
    Comme Form1 n'a pas de RecordSource et que l'unique contrôle NavWeb est l'ActiveX WebBrowser.

    J'ai trouvé comme autre possibilité de me déplacer dans la page affichée par NavWeb de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Dans Form2
    DoCmd.Close acForm, Me.name ' Ferme le formulaire
    Forms!Form1.form!NavWeb.Navigate Application.CurrentProject.path & "\MaPage.htm#" & g_Ancre & ""
    Exit Sub
    Je vais conserver cette solution.

    (pas essayé, car je ne sais pas reproduire ta situation : désactivation de la roulette)
    Tu ne pouvais pas, et de mon côté c'était trop difficile d'extraire les 2 formulaires de ma base pour en faire une mini base portable ici.

    Et encore merci.
    Bien cordialement

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

Discussions similaires

  1. [AC-2016] Rendre le focus après validation
    Par multimedia999 dans le forum Access
    Réponses: 7
    Dernier message: 07/12/2017, 15h33
  2. Réponses: 1
    Dernier message: 20/04/2010, 18h30
  3. Réponses: 2
    Dernier message: 29/01/2010, 16h12
  4. Réponses: 6
    Dernier message: 22/04/2007, 07h31
  5. Rendre le focus à champ de saisie après une action
    Par Gothico dans le forum WinDev
    Réponses: 3
    Dernier message: 24/10/2006, 16h21

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