在silverlight 4中验证按下键事件的文本框是否只接受数字
本文关键字:是否 文本 数字 事件 silverlight 验证 | 更新日期: 2023-09-27 18:19:16
我需要一个验证来检查按下的键是否为数字。我尝试了不同的代码,但他们不能帮助我。在文本框中,如果用户按下Shift+numbers
,则显示特殊字符,如!,@,#
......我需要验证Shift + key down event
。
private void txtNumericTextbox_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.Key < Key.D0 || e.Key > Key.D9)
{
if (e.Key < Key.NumPad0 || e.Key > Key.NumPad9)
{
if (e.Key != Key.Back)
{
txtNumericTextbox_.BorderBrush = new SolidColorBrush(Colors.Red);
lblErrorMessage.Visibility = Visibility.Visible;
lblErrorMessage.Text = "Please Enter Numbers Only";
}
else
{
txtNumericTextbox_.BorderBrush = new SolidColorBrush(Colors.DarkGray);
lblErrorMessage.Visibility = Visibility.Collapsed;
lblErrorMessage.Text = "";
}
}
}
}
}
我怎么才能做到呢?
您可以使用控件上的ModifierKeys属性来确定是否按住了shift键。
//代码使用此参数只接受数值。事件可以选择textBox1_KeyDown nonnumberenter = false;
if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
{
if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
{
if (e.KeyCode != Keys.Back)
{
nonnumberenter = true;
string abc = "Please enter numbers only.";
DialogResult result1 = MessageBox.Show(abc.ToString(), "Validate numbers", MessageBoxButtons.OK);
}
}
}
if (Control.ModifierKeys == Keys.Shift)
{
nonnumberenter = true;
string abc = "Please enter numbers only.";
DialogResult result1 = MessageBox.Show(abc.ToString(), "Validate numbers", MessageBoxButtons.OK);
}
使用此参数只接受字符。如果您可以选择textBox1_KeyPress
if (Char.IsNumber(e.KeyChar) || Char.IsSymbol(e.KeyChar) || Char.IsWhiteSpace(e.KeyChar) || Char.IsPunctuation(e.KeyChar))
{
MessageBox.Show("Only Char are allowed");
e.Handled = true;
}
可以使用文本框按键事件
private void txt_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) )
{
e.Handled = true;
}
}
我在寻找同样的东西:只接受数字。然而,我没有在我的_KeyDown
事件中找到任何e.KeyCode
,所以我改编了Kumar的代码以满足我的需求,并且与您分享,如果它更适合您:使用e.Handled = true
取消该字符的输入。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.NumPad0:
case Key.NumPad1:
case Key.NumPad2:
case Key.NumPad3:
case Key.NumPad4:
case Key.NumPad5:
case Key.NumPad6:
case Key.NumPad7:
case Key.NumPad8:
case Key.NumPad9:
case Key.D0:
case Key.D1:
case Key.D2:
case Key.D3:
case Key.D4:
case Key.D5:
case Key.D6:
case Key.D7:
case Key.D8:
case Key.D9:
break;
default:
e.Handled = true;
break;
}
}