读书人

在textBox中输入数目字只能是1-12 且个

发布时间: 2013-01-20 10:22:41 作者: rapoo

在textBox中输入数字只能是1-12 且个位数前面补0
private void txtMonth_TextChanged(object sender, EventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(txtMonth.Text, @"^\d*$"))
{
txtMonth.Undo();
}

if (Regex.IsMatch(txtMonth.Text.Trim(), @"^([0-9]*|1[0-2])$"))
{
if (txtMonth.Text.Length == 2)
{
txtMonth.Text = txtMonth.Text;
}
else if (txtMonth.Text.Length == 1)
{
txtMonth.Text = 0 + txtMonth.Text;
}
}
else
{
txtMonth.Text = "";
}

}
要求:1、输入只能是数字
2、输入的数字是1到12的
3、假如输入的月份是基数位在前面补零也就是输入1显示0 C#?winform C#
[解决办法]

private void txtMonth_TextChanged(object sender, EventArgs e)
{
Regex reg=new Regex(@"^0?[1-9]
[解决办法]
1[0-2]$");
if (!reg.IsMatch(txtMonth.Text))
{
txtMonth.Undo();
}

if (txtMonth.Text.Length == 1)
{
txtMonth.Text =txtMonth.Text.PadLeft(2,'0');
}
}

[解决办法]
1,2
private void txtMonth_TextChanged(object sender, EventArgs e)
{
if (!Regex.IsMatch(txtMonth.Text.Trim(), @"^([0-9]
[解决办法]
1[0-2])$"))
{
txtMonth.Text = "";


}

}

3、假如输入的月份是基数位在前面补零也就是输入1显示0
在失去焦点的时候
textbox1.Text=textbox1.Text.Trim().PadLeft(2,'0');
[解决办法]

引用:
引用:C# code
?



123

string s = "12"; s = s.PadLeft(3,'0');
没看懂

string.PadLeft(3,'0')自动补'0' 比如12就补位012
[解决办法]
在keydown,keypress事件里处理。
[解决办法]

private void txtMonth_Validating(object sender, CancelEventArgs e)
{
txtMonth.Text = txtitemno.Text.Trim().PadLeft(2, '0');
}

private void txtMonth_KeyPress(object sender, KeyPressEventArgs e)
{

if (this.txtMonth.Text.Trim().Length == 0) { return; }

if (Convert.ToInt16(e.KeyChar) == 8)
{
e.Handled = false;
}
else
{
txtMonth.Text = txtMonth.Text + e.KeyChar.ToString();

if (!Regex.IsMatch(txtMonth.Text.Trim(), @"^([0-9]
[解决办法]
1[0-2])$"))
{
txtMonth.Text = txtMonth.Text.Substring(0, this.txtMonth.Text.Trim().Length - 1);
}
txtMonth.SelectionStart = txtMonth.Text.Length;
txtMonth.Focus();
e.Handled = true;
}
}

给你写了个,大致测试了下,是可以满足你的要求,
不知道为什么不用 combox

读书人网 >C#

热点推荐