C#中winform控制textbox輸入只能為數(shù)字的方法
更新時(shí)間:2015年01月09日 08:46:44 投稿:shichen2014
這篇文章主要介紹了C#中winform控制textbox輸入只能為數(shù)字的方法,包括使用keyPress事件限制鍵盤(pán)輸入以及TextChanged事件限制粘貼等情況,來(lái)實(shí)現(xiàn)控制輸入為數(shù)字的功能,需要的朋友可以參考下
本文實(shí)例講述了C#中winform控制textbox輸入只能為數(shù)字的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
添加keyPress事件,控制鍵盤(pán)輸入只能是自然數(shù):
復(fù)制代碼 代碼如下:
/// <summary>
/// 控制鍵盤(pán)輸入只能是自然數(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í)過(guò)濾不是數(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# XML基礎(chǔ)入門(mén)小結(jié)(XML文件內(nèi)容增刪改查清)
本文主要介紹了C# XML基礎(chǔ)入門(mén)小結(jié)(XML文件內(nèi)容增刪改查清),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
C#實(shí)現(xiàn)撲克游戲(21點(diǎn))的示例代碼
21點(diǎn)又名黑杰克,該游戲由2到6個(gè)人玩,使用除大小王之外的52張牌,游戲者的目標(biāo)是使手中的牌的點(diǎn)數(shù)之和不超過(guò)21點(diǎn)且盡量大。本文將用C#實(shí)現(xiàn)這一經(jīng)典游戲,需要的可以參考一下2022-08-08

