C#: 鼠標和鍵盤的輸入事件


本文以Canvas為例,介紹一下在C#中獲取鼠標和鍵盤事件的方法。使用這些事件前,需要添加引用using System.Windows.Input。

1. MouseDown

Canvas  canvas = new Canvas();
canvas.MouseDown += new MouseEventHandler(canvas_MouseMove);

private void canvas_MouseMove(object sender, MouseEventArgs e)
{
    if(e.LeftButton == MouseButtonState.Pressed)
    {
        //事件處理
    }
}

 

 

2. KeyDown

由於Canvas 無法像TextBox那樣捕捉鍵盤輸入,所以對Canvas添加KeyDown事件后發現無法觸發,但鼠標事件可以。要解決這個問題,可將事件處理放在上層窗體的鍵盤事件中。

var window = Window.GetWindow(this);
window.KeyDown += new KeyEventHandler(window_keyDown);

private void window_keyDown(object sender, KeyEventArgs e) 
{
//事件處理 }

 

3. PreviewKeyDown

與KeyDown的區別:

PreviewKeyDown是隧道路由類型,方向是從父到子。

KeyDown是冒泡路由類型,方向是從子到父。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM