最好的選擇是防止用戶輸入無效字符。這可以通過在TextChanged事件中使用正則表達式來完成。你可以選擇寬容或限制模式。
一定要添加必要的using語句:
using System.Text.RegularExpressions;
在許可模型,允許除以外的所有字符已明令禁止:
private Regex rxForbidden = new Regex(@"[&$%£]", RegexOptions.IgnoreCase);
private void txtInput_TextChanged(object sender, TextChangedEventArgs e)
{
txtInput.Text = rxForbidden.Replace(txtInput.Text, "");
txtInput.SelectionStart = txtInput.Text.Length;
}
在限制性模式,你只允許特定的字符:
private Regex rxForbidden = new Regex(@"[^0-9a-z]", RegexOptions.IgnoreCase);
private void txtInput_TextChanged(object sender, TextChangedEventArgs e)
{
txtInput.Text = rxForbidden.Replace(txtInput.Text, "");
txtInput.SelectionStart = txtInput.Text.Length;
}
一般的限制性模式會更容易維護(你會不會回去繼續增加額外的禁止符號,你會發現它們),但它真的取決於你的應用程序。在任何一種情況下,任何禁用符號的使用都將被完全忽略,就好像用戶沒有按下該鍵一樣。
作爲一個附註,您的textbox
應該有它的InputScope
設置爲Maps
。