限制文本框僅允許輸入數字,非數字字符顯示於窗體標題欄,文本框不顯示。
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
// 允許退格鍵 (ASCII 8) 與數字字符
if (e.KeyChar != 8 && !char.IsDigit(e.KeyChar))
{
this.Text = e.KeyChar.ToString(); // 顯示在標題欄
e.Handled = true; // 標記為已處理,阻止字符進入文本框
}
}
KeyPressEventArgs.KeyChar:獲取按鍵對應的字符(非鍵碼)char.IsDigit():判斷是否為數字字符(0-9)e.Handled = true:取消鍵盤事件繼續傳播,字符不會輸入控件private void txtNumber_KeyPress(object sender, KeyPressEventArgs e)
{
// 允許:控制鍵(退格、刪除等)、數字、小數點(僅一個)、負號(僅首位)
if (char.IsControl(e.KeyChar)) return;
if (char.IsDigit(e.KeyChar)) return;
var txt = sender as TextBox;
// 小數點控制
if (e.KeyChar == '.' && !txt.Text.Contains(\".\") && txt.SelectionStart > 0)
return;
// 負號控制
if (e.KeyChar == '-' && txt.SelectionStart == 0 && !txt.Text.StartsWith(\"-\"))
return;
e.Handled = true; // 其他全部攔截
}
Validating 事件做最終驗證,防止粘貼繞過MaskedTextBox 或自定義控件封裝復用