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

Windows Forms Discussion :

Detecter Key event dans PictureBox


Sujet :

Windows Forms

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Detecter Key event dans PictureBox
    Bonjour

    Vraissemblablement le designer n'expose pas de Key Event pour un PictureBox

    J'ai donc essayé de m'abonner "a la main" dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          pbSource.KeyUp += new System.Windows.Forms.KeyEventHandler(this.pbSource_KeyUp);
    Mais l'event ne semble jamais déclanché

    Avez-vous une idée comment Faire ?

    Merci de votre aide

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Bonjour

    J'ai déja trouvé que pour intercepter l'event, il fallait forcer le focus du PictureBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        private void pbSource_MouseEnter(object sender, EventArgs e)
        {
          Cursor = Cursors.Cross;
          pbSource.Focus();
        }
    Cela convient pour intercepter la plupart des touche SAUF les Arrow (left, right, etc..)
    Apparement quand une arrow est pressé le focus passe au control suivant

    Donc je cherche encore

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Bonjour

    Finalement il semble que la seule solution soit de tester l'event au niveau de la form et de verifier si le cursor est dans le PB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        private void frmPhotoMatch_KeyDown(object sender, KeyEventArgs e)
        {
          if (pbSource.Bounds.Contains(this.PointToClient(Cursor.Position)))
          {
            ProcessKey(e);
            e.Handled = true;
          }
        }
    Par contre j'ai pas encore réussi a empecher que sur un ArrowKey le focus se ballade dans la form

Discussions similaires

  1. [MFC] Probleme Key Events
    Par vainsoul dans le forum MFC
    Réponses: 11
    Dernier message: 08/08/2005, 12h01
  2. [VB.NET] Impossible de supp fichier affiché dans PICTUREBOX
    Par stephane93fr dans le forum Windows Forms
    Réponses: 8
    Dernier message: 14/06/2005, 17h46
  3. problème de detection des CD dans mes lecteurs
    Par zakfa dans le forum Windows XP
    Réponses: 8
    Dernier message: 31/03/2005, 11h07
  4. [C#] Capture écran dans pictureBox
    Par Gauden dans le forum Windows Forms
    Réponses: 5
    Dernier message: 05/05/2004, 10h18
  5. [VB6] [Graphisme] Inversion dans picturebox
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 16/04/2003, 15h05

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