如何检查文本框是否仅包含零并显示警告消息?

How to check if textbox contains only zero and display an alert message?

我使用 windows 形式和 C# 。我有一个包含 button1textbox1 的表格。

我想要的是:当我单击 button1 时,如果 textbox1 包含任何零或零(仅零的任意组合),则显示警告消息,例如:

0
00
0000
000
000000000

我尝试了以下代码,但如果 textbox1 有多个零(例如 000)

,它将无法工作
private void button1_Click(object sender, EventArgs e)
{    
    if (textBox1.Text == "0")
        MessageBox.Show("Enter Value larger than zero);
}

单击 button1 时,如果 textbox1 具有 零的任意组合 ,我如何获得警报消息?

您可以像这样检查字符串是否只包含零 (0)

var str = "000000000";
var isZero = str.All(c => c == '0');

Regex

var isZeroWithRegex = Regex.IsMatch(str, "^0+$");

您可以只使用:

int convertedText=Convert.ToInt32(textBox1.Text);
if(convertedText==0)
{
...
}

您只需 trim 0 个字符,方法如下:

var text1 = "00000000";
var text2 = "00009000";

Console.WriteLine("Text1: {0}", string.IsNullOrWhiteSpace(text1.Trim('0')));
Console.WriteLine("Text2: {0}", string.IsNullOrWhiteSpace(text2.Trim('0')));

哪个returns:

Text1: true

Text2: false //Because we have 9 in the middle of the text.

在你的代码中你会有这样的东西:

private void button1_Click(object sender, EventArgs e)
{    
     if (string.IsNullOrWhiteSpace(textBox1.Text.Trim('0'))
           MessageBox.Show("Enter Value larger than zero");
}
int value = Convert.ToInt32(textBox1.Text);
if(value ==0)
{
//show
}
else
{
//do something else
}

为此,您可以将该值转换为整数。不过,您可能需要为字符串检查等添加一些验证。

要执行此操作:

private void button1_Click(object sender, EventArgs e)
{    
           if ( int.Parse(textBox1.Text) == 0)

            MessageBox.Show("Enter Value larger than zero");
}

这会将字符串转换为 int,00、000、0000 等等于 0。

我会用我的方式解释。首先,我要替换所有“0”而不是检查长度,因为如果此文本的“0”多于一个不等于 0 的长度,否则长度必须为 0

if(textBox1.Text.Replace("0","").Length==0)

根据问题的内容,您想知道文本框中是否有零。最简单的方法是

if (textBox1.Text.Contains("0")) MessageBox.Show("Enter Value larger than zero);

但是,如果您想确保该值大于零,请将其转换为 int 并进行检查。

int numberEntered;
if (!int.TryParse(textBox1.Text,out numberEntered)){
   //handle conversion error
}
if (numberEntered == 0)
    MessageBox.Show("Enter Value larger than zero);`