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 :

Ouverture d'un form d'aide quand appuie sur la touche F1


Sujet :

C#

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut Ouverture d'un form d'aide quand appuie sur la touche F1
    Bonjour,

    Je cherche lorsque l'utilisateur appuie sur le bouton F1 à ouvrir un formulaire d'aide.
    J'ai essayé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void frmCommitHelp_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Back)
                {
                    frmHelp myHelpForm = new frmHelp();
                    myHelpForm.Show();
                    myHelpForm.Focus();
                }
     
             }
    Mais sans résultats...

    Je suis désolée si cette question à déjà été posée, je suis nouvelle sur le forum et je n'ai pas réussi à trouver ce sujet.

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    à mon avis, si tu veux que tu ouvres quelque chose en appuyant sur F1, il vaudrait mieux mettre la bonne touche à comparer (Keys.F1) me semble
    plus appropriée ou quelque chose du genre )

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    Oui oui j'ai bien mis Keys.F1 excuse moi je n'ai pas copié la bonne partie du code
    Le programme ne passe pas par ma fonction, je ne dois pas la mettre au bon endroit mais je ne sais pas où la mettre (je débute en C#) :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace WindowsApplication1
    {
        public partial class frmCommitHelp : Form
        {
            public frmCommitHelp()
            {
                InitializeComponent();
            }
     
            private void btnAide_Click(object sender, EventArgs e)
            {
                frmHelp myHelpForm = new frmHelp();
                myHelpForm.Show();
                myHelpForm.Focus();
     
            }
     
            private void btQuitter_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }
     
            private void frmCommitHelp_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.F1)
                {
                    frmHelp myHelpForm = new frmHelp();
                    myHelpForm.Show();
                    myHelpForm.Focus();
                }
     
             }
     
        }
    }

  4. #4
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Utilise les balises CODE pour formater tes bouts de code (bouton # dans l'éditeur), ça sera plus compréhensible

    Ensuite, je pense que si ça ne marche pas ça doit être parce-qu'un autre composant que ton formulaire a le focus. Ce qui fait que c'est son événement KeyDown qui est levé et pas celui du formulaire.

    Après, juste quelques conseils : pense à commenter ton code, c'est toujours utile

    Et vu que tu utilise deux fois le même bout de code, tu peux le regrouper dans une méthode privée que tu appellera dans tes fonctions :


    Code C# : 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
    private void ShowHelpForm()
    {
        frmHelp myHelpForm = new frmHelp();
        myHelpForm.Show();
        myHelpForm.Focus();
    }
     
    private void btnAide_Click(object sender, EventArgs e)
    {
        ShowHelpForm();
    }
     
    private void frmCommitHelp_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.F1)
        {
            ShowHelpForm();
        }
    }
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    Ok pour les balises de code. Je commence juste ma programmation d'où le manque de commentaires en effet
    Pour un conseil, la méthode privée qui m'affiche l'aide je la met à la suite de mon code et je met private void AffichAide() par exemple c'est bien ça?

    En ce qui concerne mon petit problème à quel niveau du code dois-je donner le focus à mon formulaire, parce que effectivement c'est une textbox qui a le focus...

  6. #6
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Citation Envoyé par juju1988 Voir le message
    Pour un conseil, la méthode privée qui m'affiche l'aide je la met à la suite de mon code et je met private void AffichAide() par exemple c'est bien ça?
    Exact, tu peux la mettre où tu veux dans ta classe et tu la nommes comme tu le souhaite.
    Ensuite, je préconise de la mettre en private car cette classe sera la seule à l'utiliser.
    Et le void, car elle ne retourne rien, elle affiche juste le formulaire d'aide.

    Citation Envoyé par juju1988 Voir le message
    En ce qui concerne mon petit problème à quel niveau du code dois-je donner le focus à mon formulaire, parce que effectivement c'est une textbox qui a le focus...
    Une façon de faire serait de faire ton test dans le KeyDown de la TextBox. Ou d'appeller l'événemetn KeyDown de la fenêtre depuis le KeyDown de la TextBox.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    Oui effectivement cela fonctionne si je passe par la textbox mais j'aurais aimé ne pas avoir à y passer je vais chercher encore un peu pour voir...

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Par défaut
    Bonjour,

    et si dans ton constructeur de ton form tu mettais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    KeyPreview = true;
    afin que ton form soit toujours informé des évènements clavier et souris ?

  9. #9
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Excellente idée, c'est la propriété que j'oublie toujours !
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    Citation Envoyé par ketan Voir le message
    Bonjour,

    et si dans ton constructeur de ton form tu mettais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    KeyPreview = true;
    afin que ton form soit toujours informé des évènements clavier et souris ?
    Mon formulaire a déjà la propriété KeyPreview à True...

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    J'ai trouvé la solution grâce à un peu d'aide
    En fait je n'avais pas mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.KeyDown += new KeyEventHandler(frmCommitHelp_KeyDown);
    dans le designer.
    Je ne savais pas comment ça fonctionnait et c'est bon j'ai trouvé.
    Merci beaucoup.

  12. #12
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Un conseil, sous Visual Studio, quand tu veux utiliser un événement d'un contrôle, passe par la fenêtre propriété.

    Le code du fichier Designer.cs est généré par Visual Studio et ne doit surtout pas être modifié à la main.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    Oh ok ... je savais pas comment j'aurais dû faire alors?? Dans l'onglet propriétés de mon form?? Où fallait-il que je modifie? Pour quelle propriété?

  14. #14
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Tu sélectionne tout d'abord le contrôle pour lequel tu veux utiliser l'événement.

    Ensuite tu va dans la fenêtre des propriétés, et tu clic sur le petit éclair, qui va afficher tous les événements qui sont proposés par le contrôle.

    Tu n'as plus qu'à double-cliquer sur l'événement que tu veux afin que Visual Studio génère tout ce qu'il faut et que tu n'ai plus qu'à te préoccuper de ce qui va être fait lorsque l'événement sera levé.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    Ben oui suis-je bête c'est un peu comme sous delphi merci beaucoup pour toute cette aide

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/05/2008, 20h01
  2. changer de panel quand appuie sur bouton
    Par claire13 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 17/04/2008, 14h53
  3. Réponses: 25
    Dernier message: 18/12/2007, 23h06
  4. Simuler l'appui sur une touche, au niveau système
    Par debutant java dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/08/2004, 13h51
  5. Détecter l'appui sur la touche de fonction F2
    Par titiyo dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/06/2003, 12h07

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