這篇文章主要介紹了C#中winform控制textbox輸入只能為數字的方法,包括使用keyPress事件限制鍵盤輸入以及TextChanged事件限制粘貼等情況,來實現控制輸入為數字的功能,需要的朋友可以參考下
本文實例講述了C#中winform控制textbox輸入只能為數字的方法。分享給大家供大家參考。具體實現方法如下:
添加keyPress事件,控制鍵盤輸入只能是自然數:
復制代碼代碼如下:
/// <summary>
/// 控制鍵盤輸入只能是自然數
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 允許輸入:數字、退格鍵(8)、全選(1)、復制(3)、粘貼(22)
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 &&
e.KeyChar != 1 && e.KeyChar != 3 && e.KeyChar != 22)
{
e.Handled = true;
}
}
但是這樣不能避免粘貼文字里含有非數字字符的情況,可以添加TextChanged事件進行控制:
復制代碼代碼如下:
/// <summary>
/// 粘貼時過濾不是數字的字符
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textbox1_TextChanged(object sender, EventArgs e)
{
var reg = new Regex("^[0-9]*$");
var str = textbox1.Text.Trim();
var sb = new StringBuilder();
if (!reg.IsMatch(str))
{
for (int i = 0; i < str.Length; i++)
{
if (reg.IsMatch(str[i].ToString()))
{
sb.Append(str[i].ToString());
}
}
textbox1.Text = sb.ToString();
//定義輸入焦點在最后一個字符
textbox1.SelectionStart = textbox1.Text.Length;
}
}
希望本文所述對大家的C#程序設計有所幫助。