您的位置:首页 > 移动开发 > Objective-C

wpf textbox控制只能输入数字

2012-08-29 09:10 507 查看
KeyDown事件:

private void TextBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)

{

TextBox txt = sender as TextBox;

//屏蔽非法按键

if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal)

{

if (txt.Text.Contains(".") && e.Key == Key.Decimal)

{

e.Handled = true;

return;

}

e.Handled = false;

}

else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.Modifiers != ModifierKeys.Shift)

{

if (txt.Text.Contains(".") && e.Key == Key.OemPeriod)

{

e.Handled = true;

return;

}

e.Handled = false;

}

else

{

e.Handled = true;

}

}

TextChanged事件:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)

{

//屏蔽中文输入和非法字符粘贴输入

TextBox textBox = sender as TextBox;

TextChange[] change = new TextChange[e.Changes.Count];

e.Changes.CopyTo(change, 0);

int offset = change[0].Offset;

if (change[0].AddedLength > 0)

{

double num = 0;

if (!Double.TryParse(textBox.Text, out num))

{

textBox.Text = textBox.Text.Remove(offset, change[0].AddedLength);

textBox.Select(offset, 0);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  textbox wpf object