private void endSpeed_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsNumber(e.KeyChar) &&
!Char.IsPunctuation(e.KeyChar) &&
!Char.IsControl(e.KeyChar))
{
e.Handled = true;
}
else if (Char.IsPunctuation(e.KeyChar))
{
if (endSpeed.Text.LastIndexOf('.') != -1)
{
e.Handled = true;
}
if (e.KeyChar == '-')
{
if (this.endSpeed.Text.Length > 0)
e.Handled = true;
}
}
}
目前小弟在網路上搜尋只輸入數字的方法,
東拼西湊之下完成了一個堪用的過濾方式。
其主要的邏輯為
1.先篩選掉非數字浮號的字元
2.小數點只能有一個
3.負號只能在第一位
但現在有個問題了,有幾個方法無法使用
1.當textbox.text內已經有小數點,無法反白(全選)後輸入'.'
2.當textbox.text內有內容,無法反白(全選)後輸入'-'
總而言之我的過濾方式無法排除全選後輸入這種方法,是否有更好的處理方式。