首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在textBox中输入数目字只能是1-12 且个位数前面补0

2013-01-20 
在textBox中输入数字只能是1-12 且个位数前面补0private void txtMonth_TextChanged(object sender, Event

在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

热点排行