您的位置:首页 > 其它

自定义控件之NumberTextBox

2016-02-16 10:25 239 查看
/// <summary>
/// 允许输入数字的TextBox,禁止粘贴,允许backspace、left、right、enter键
/// </summary>
public class NumberTextBox : TextBox
{
public NumberTextBox()
{
DataObject.AddPastingHandler(this, Text_Pasting);
}

protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9 && e.KeyboardDevice.Modifiers != ModifierKeys.Shift)
|| (e.Key >= Key.D0 && e.Key <= Key.D9 && e.KeyboardDevice.Modifiers != ModifierKeys.Shift) ||
e.Key == Key.Back || e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Enter)
{
if (e.KeyboardDevice.Modifiers != ModifierKeys.None)
{
e.Handled = false;
}
}
else
{
e.Handled = true;
}
}

private void Text_Pasting(object sender, DataObjectPastingEventArgs e)
{
//禁止Pasting
e.CancelCommand();
}
}


  上述代码屏蔽了小数点输入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: