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是冒泡路由类型,方向是从子到父。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值