通过KeyEventArgs.
需要引用的命名空间:
using System.Windows.Input;
using KeyEventArgs = System.Windows.Input.KeyEventArgs;//引用命名空间为keyeventarges服务,因为keyeventargs表示keydown与input所以需要指明具体是哪个操作
KeyEventArgs有keydown和input。所以需要指明具体是哪个操作。
using KeyEventArgs = System.Windows.Input.KeyEventArgs,这句话就是指明具体是那种操作的。
具体代码:
private System.Windows.Input.KeyEventArgs text;
public System.Windows.Input.KeyEventArgs Text
{
get { return text; }
set { text = value; }
}
public static void InputNumber(KeyEventArgs e)
{
if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Back)
{
e.Handled = false;
}
else if ((e.Key >= Key.D0 && e.Key <= Key.D9 || e.Key == Key.Back))
{
e.Handled = false;
}
else
{
e.Handled = true;
System.Windows.MessageBox.Show("请输入数字");
return;
}
}
解析:
为什么需要两个key值的判断,因为有两个数字输入的地方。下面是具体表示。
客户端:
private void Pwd_PreviewKeyDown(object sender, KeyEventArgs e)
{
Input.InputNumber(e);
}
因为我们写了静态方法所一不需要创建就可以直接调用对象。也就是用户端为什么只需要写一行就可以。
如果我们使用了非静态方法,那么需要先实例化。在通过实例化的去调对象。