C#中winform控制textbox輸入只能為數(shù)字的方法
更新時間:2015年01月09日 08:46:44 投稿:shichen2014
這篇文章主要介紹了C#中winform控制textbox輸入只能為數(shù)字的方法,包括使用keyPress事件限制鍵盤輸入以及TextChanged事件限制粘貼等情況,來實現(xiàn)控制輸入為數(shù)字的功能,需要的朋友可以參考下
本文實例講述了C#中winform控制textbox輸入只能為數(shù)字的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
添加keyPress事件,控制鍵盤輸入只能是自然數(shù):
復制代碼 代碼如下:
/// <summary>
/// 控制鍵盤輸入只能是自然數(shù)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 允許輸入:數(shù)字、退格鍵(8)、全選(1)、復制(3)、粘貼(22)
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 &&
e.KeyChar != 1 && e.KeyChar != 3 && e.KeyChar != 22)
{
e.Handled = true;
}
}
但是這樣不能避免粘貼文字里含有非數(shù)字字符的情況,可以添加TextChanged事件進行控制:
復制代碼 代碼如下:
/// <summary>
/// 粘貼時過濾不是數(shù)字的字符
/// </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#程序設計有所幫助。
相關文章
C# Csv實現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable
本文主要介紹了C# Csv實現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02深入淺析c#靜態(tài)多態(tài)性與動態(tài)多態(tài)性
多態(tài)就是多種形態(tài),也就是對不同對象發(fā)送同一個消息,不同對象會做出不同的響應。這篇文章主要介紹了c#靜態(tài)多態(tài)性與動態(tài)多態(tài)性的相關知識,需要的朋友可以參考下2018-09-09