我需要驗證來檢查按下的按鍵是否爲數字。我試着用不同的代碼,但他們不能幫助我。在文本框中,如果用戶按Shift+numbers
它顯示特殊字符,如!,@,#
......我需要驗證Shift + key down event
。在按鍵事件上驗證文本框只接受silverlight中的數字4
//代碼
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 = "";
}
}
}
}
}
我怎樣才能做到這一點?
通常當我處理數字輸入時,我只是在'TextChanged'事件上嘗試'Int32.TryParse'或'Double.TryParse'。它使處理負號,小數或其他錯誤的按鍵進行編輯變得簡單(刪除,複製/粘貼,箭頭左/右鍵)然後只顯示「請插入一個數字」的一般錯誤。 –
如果在屬性中使用[ValidationException](http://msdn.microsoft.com/library/system.componentmodel.dataannotations.validationexception(v = vs.95).aspx)綁定到「Textbox.Text」屬性,文本框自動設置紅色邊框和消息。請參見[Silverlight驗證](http://msdn.microsoft.com/zh-cn/library/system.windows.controls.validationsummary(v = vs.95).aspx#exampleToggle)。 – Tonio