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#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 37
    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 : 37
    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.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/05/2008, 19h01
  2. changer de panel quand appuie sur bouton
    Par claire13 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 17/04/2008, 13h53
  3. Réponses: 25
    Dernier message: 18/12/2007, 22h06
  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, 12h51
  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, 11h07

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