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 :

Menu Edition Copier, Coller… à la Windows


Sujet :

Windows Forms

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut Menu Edition Copier, Coller… à la Windows
    Bonjours,

    actuellement, j'ai un menu édition qui contient:
    Annuler (CTRL+Z), Couper (CTRL+X), Copier (CTRL+C), Coller (CTRL+V), Effacer (SUPPR) et Selectionner Tout (CTRL+A).

    J'utilise les raccourcis claviers classiques Windows,
    mais j'aimerai savoir si il était possible, par exemple, dans le cas de l'exécution d'un de ces Evenement sur un Control comme un TextBox, que Windows reprenne la main plutôt qu'un morceau de code fait maison?

    Le but de la manoeuvre est que lors de l'exécution d'un Evenement, j'intercepte le Type du Control sur lequel l'utilisateur appelle cet Evenement et en fonction de ça,
    je laisse Windows gérer sur des Control connus. Ou alors, comme dans le cas d'un DataGrindView, j'intercepte et j'exécute un bloc d'instructions maison.

    je vous remercie d'avance.

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par dtcSearch Voir le message
    mais j'aimerai savoir si il était possible, par exemple, dans le cas de l'exécution d'un de ces Evenement sur un Control comme un TextBox, que Windows reprenne la main plutôt qu'un morceau de code fait maison?
    Ben c'est déjà le cas, non ? Tape Ctrl + C dans une textbox, ça mettra la sélection dans le presse-papier. Le menu contextuel associé au clic droit de la souris est aussi présent.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    J'ai besoin de les intercepter,
    c'est le cas lorsqu'on utilise les raccourcis claviers associés aux actions windows correspondantes.
    L'inconvenient est que ça intercepte tout et donc il faut recoder les actions natives à Windows pour sa propre application.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    Finalement, j'ai trouvé une solution, pour ce faire, j'active et je désactive temporairement la propriété ShortcutKeys.
    A l'aide de SendKeys.SendWait, je simule l'action appelée qui sera interpété par 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
    private void CopierToolStripMenuItem_Click(object sender, EventArgs e)
    {
     Form fctive = this.ActiveMdiChild;
     if (fctive != null)
     {
      if (factive.ActiveControl.ToString().Contains("DataGridView"))
      {
       // TRAITEMENT POUR LE DATAGRIDVIEW
      }
      else
      }
       EffacerToolStripMenuItem.ShortcutKeys = Keys.None;
       SendKeys.SendWait("^C");
       EffacerToolStripMenuItem.ShortcutKeys = ((Keys)((Keys.Control | Keys.C)));
      }
     }
    }
    Au final, il me suffira juste de vérifier le type de Control actif à l'aide de ActiveControl puis, dans un Switch et avec Clipboard.SetText, affecter les traitements sur des types précis.

  5. #5
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Je te conseille de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (factive.ActiveControl.ToString().Contains("DataGridView"))
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (factive.ActiveControl is DataGridView)
    Vaut mieux se base sur le type que sur le nom.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    Merci, j'avais dans l'espoir que quelqu'un me donne une méthode plus pro

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

Discussions similaires

  1. Menu contextuel copier/coller
    Par carnak dans le forum IHM
    Réponses: 2
    Dernier message: 28/05/2010, 12h10
  2. Réponses: 0
    Dernier message: 15/05/2009, 09h49
  3. Gérer un (Copier Coller) sous windows
    Par toutpart dans le forum C
    Réponses: 3
    Dernier message: 26/03/2008, 16h39
  4. Réponses: 3
    Dernier message: 05/11/2005, 15h35
  5. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 18h32

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