c#如何检查文本框是否有一位数?

时间:2010-09-20 11:49:20

标签: c#

目前,如果文本框中只有一个数字,我的程序会崩溃。例如。用户将'6'放入日文本框(应该是两位数),当他/她单击“转换”按钮时程序将崩溃。它必须是两位数,否则程序会崩溃......

顺便说一下,我的应用程序是时间转换器。

提前感谢:)

7 个答案:

答案 0 :(得分:4)

  

必须是两位数,否则程序崩溃

这是一个错误,修复你的程序。当程序同样可以理解为另一种格式时,使用户符合某种任意格式是非常不礼貌的。

没有理由为什么输入一个数字而不是两个数字会导致错误。

答案 1 :(得分:1)

如果要解析日期,可以使用DateTime.TryParse。以下是其他几种方法:

  • 检查每个文本框的长度(不是文化友好的)
  • 覆盖文本框并创建自己的子类,该子类会覆盖On Key Pressed - 事件,以便您可以决定要允许的内容。

答案 2 :(得分:1)

你这样检查:

if (TheDayTextbox.Text.Length != 2) {
  // illegal length
}

当然,如果它更短,你可以解决它:

string day = TheDayTextbox.Text;
if (day.Length == 1) {
  day = "0" + day;
}

答案 3 :(得分:0)

这就是我们所说的验证,这是非常重要的事情。

你永远不应该编写任何假设的代码,首先验证它!

例如:

if( myTextBox.Text.Length > 1 ) {

    // continue the process

} else {

    MsgBox.Show("Can you please do things right for once?");
}

将完成您想要的技巧,但您可以利用.NET Framework上的Validators。

告诉我们它是Windows还是网页,我们将帮助您验证部分。

答案 4 :(得分:0)

假设这是一个网络应用程序 - 您可以在javascript变量中获取textbox的值,然后使用javascript中的“length”属性检查长度。

答案 5 :(得分:0)

如果您正在谈论WinForms,那么您可以查看textBox.Text.Length

if(textBox1.Text.Length <= 1)
{
   // handle error
}

答案 6 :(得分:0)

    int res = -1;

    if(textBox.Text.Length == 2) {
      Int32.tryParse(textBox.Text, res)
    }


    if(res > 0) {
   //   convert
    }