2017-03-18 2 views
0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 

namespace clipper 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 

     public void HandleKeyDownEvent(object sender, KeyEventArgs e) 
     { 
      MessageBox.Show("It came here"); 

      if (e.Key == Key.LeftCtrl && e.Key == Key.C) 
      { 
       MessageBox.Show("You have pressed control + c"); 
      } 
     } 
    } 
} 

Donc c'est mon code. J'ai essayé de googler la solution pour l'événement KeyPress et je l'ai implémenté ici. Mais comme je suis nouveau à C#, je ne suis pas sûr de ce qui s'est mal passé. Guidez-moi s'il-vous-plaît.J'essaye d'avoir une frappe en C# wpf mais ça ne marche pas. Mon code est-il faux?

Répondre

1

vous devez changer KeyPreview à true et vous pouvez essayer e.Modifiersevent. Il peut aider ..

private void Form1_Load(object sender, EventArgs e) 
{ 
    KeyPreview = true; 
} 

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Modifiers == (Keys.Shift | Keys.Control)) 
    { 
     MessageBox.Show("."); 
    } 
} 
+0

Je n'utilise pas de formulaire .. J'utilise wpf, et peut-être à cause de cela, je reçois une erreur pour KeyPreview = ture; – laslavinco

+0

Non seulement cela, vous avez oublié d'attacher l'événement: 'this.KeyPreview = true; this.KeyPress + = nouveau KeyPressEventHandler (HandleKeyDownEvent); ' – SilentStorm

1

Vous devez utiliser KEY_UP avec le code suivant

private void textBox_KeyUp(object sender, KeyEventArgs e) 
{ 
    if ((e.Key == Key.C) && Keyboard.IsKeyDown(Key.LeftCtrl)) 
    { 
     MessageBox.Show("You have pressed control + c"); 
    } 
} 
+0

Son ne fonctionne pas. Ce n'est toujours pas appeler la méthode. Dois-je avoir un objet dans l'interface utilisateur pour déclencher cet événement? – laslavinco

+0

oui vous devez avoir Sajeetharan

+0

owh .. puis-je utiliser autre chose qu'un TexBox? comme Button ou quelque chose? et changez textBox_KeyUp à button_KeyUp? – laslavinco