C#中的TextBox文本格式

时间:2011-07-27 06:58:03

标签: c#

我想在我的文本框中输入类似于01或02或03但不是00的内容,即文本框中允许的两个数字都不应为0.

再次清楚地,我不希望在文本框中第一个0后跟第二个0。 所以有人有想法吗?

5 个答案:

答案 0 :(得分:6)

在您的格式字符串中(当您调用ToString时),您可以使用;字符来定义“零”格式,如下所示:

myTextBox.Text = myNumber.ToString("00;;Something");

MSDN Custom Numeric Formatting: Semicolon Separator

答案 1 :(得分:1)

如果你的文本框值的内容是整数,导致你的问题不清楚,可以使用这样的东西:

public string GetFormattedString(int iValue) {
    if(iValue!=0)
      return iValue.ToString("00");

    return string.Empty;
}

例如,返回'01',0返回“”。

如果不好,请更好地解释您的实际需要。

问候。

答案 2 :(得分:1)

您可能也想尝试使用MaskedTextBox?

答案 3 :(得分:1)

不知道你的意思是这样的。但您可以使用TextChanged事件。

  private void textBox1_TextChanged(object sender, EventArgs e)
  {
     if (textBox1.Text == "00")
     {
        textBox1.Text = "";
     }
  }

如果文本框中的文本发生更改,则可以检查文本是否为“00”。 然后你可以处理它,在我的例子中,Textbox再次为空。

希望我理解你并且可以帮助你。

答案 4 :(得分:0)

如果要验证文本框控件中的输入文本,可以使用Regex 在你的情况下,它将是这样的

        string strRegex = @"^\d[1-9]$";
        Regex myRegex = new Regex(strRegex);
        string strTargetString = @"03"; // put here value from text box
        if (myRegex.IsMatch(strTargetString))
        {
            MessageBox.Show("Correct");
        }
        else
        {
            MessageBox.Show("Incorrect input");
        }