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