C# IF 检查文本框输入是否大于 0 并检查它是否为整数(数字)
C# IF that checks wether a textbox input is greater than 0 and also checks if it's an integer(Numeric)
我制作了一个记分板,用户可以在其中输入文本框 1 中允许的最大点数。我有两个按钮。左侧增加标签左侧的值,右侧增加标签右侧的值。一旦一方达到最大分数,我就使用 MessageBox 宣布获胜者。
我想知道如何检查用户是否没有在文本框中输入整数。我已经为它设定了大于 0 的条件。
这是我的:SCOREBOARD IMAGE
public void winner()
{
int max = Convert.ToInt32(textBox1.Text);
if (max <= 0 || //this is where i want to check if its an integer)
{
MessageBox.Show("Press RESET and use a value greater than 0");
btn_left.Enabled = false;
btn_right.Enabled = false;
textBox1.ResetText();
}
else if (left == max)
{
MessageBox.Show("Winner: Left Player");
textBox1.Enabled = false;
btn_left.Enabled = false;
btn_right.Enabled = false;
}
else if (right == max)
{
MessageBox.Show("Winner: Right Player");
textBox1.Enabled = false;
btn_left.Enabled = false;
btn_right.Enabled = false;
}
}
private void btn_left_Click(object sender, EventArgs e)
{
left = left + 1;
lbl_score.Text = left.ToString() + " - " + right.ToString();
winner();
}
private void btn_right_Click(object sender, EventArgs e)
{
right = right + 1;
lbl_score.Text = left.ToString() + " - " + right.ToString();
winner();
}
private void btn_reset_Click(object sender, EventArgs e)
{
textBox1.Enabled = true;
textBox1.Text = "0";
btn_left.Enabled = true;
btn_left.Enabled = true;
left = 0;
right = 0;
lbl_score.Text = left.ToString() + " - " + right.ToString();
}
编辑:我检查了评论中建议的其他解决方案,但 none 的答案似乎对我有用,除了我在此线程中选择的那个
您需要解析文本以确保它是一个数字
public void winner()
{
if (!int.TryParse(textBox1.Text, out int max))
{
MessageBox.Show("Dem numbers aren't numbers");
return;
}
...
Int32.TryParse Method (String, Int32)
Converts the string representation of a number to its 32-bit signed
integer equivalent. A return value indicates whether the conversion
succeeded.
使用 TryParse 进行测试编号输入
private bool function GreaterNumber(string text)
{
bool result = Int32.TryParse(myTextBox.Text, out number);
return result && number > 0;
}
您可以在后面添加以下代码行:
int max;
bool result = Int32.TryParse(textBox1.Text, out max);
if (result && max > 0) ...
感谢@john 的建议。
干杯!
您可以先使用 int.TryParse(n, out value) 检查整数,然后检查是否大于零。
int value;
bool success=int.TryParse(n, out value);
if(success)
{
if(n>0)
//do something
}
尝试
string a = textBox1.txt;
int b;
bool ans = int.TryParse(a, out b);
if (ans == true)
{
// your code
}
else
{
MessageBox.Show("invalid input"). // or whatever you want.
}
如果您已经在别处声明了 a、b 变量,请更改名称。
我制作了一个记分板,用户可以在其中输入文本框 1 中允许的最大点数。我有两个按钮。左侧增加标签左侧的值,右侧增加标签右侧的值。一旦一方达到最大分数,我就使用 MessageBox 宣布获胜者。
我想知道如何检查用户是否没有在文本框中输入整数。我已经为它设定了大于 0 的条件。
这是我的:SCOREBOARD IMAGE
public void winner()
{
int max = Convert.ToInt32(textBox1.Text);
if (max <= 0 || //this is where i want to check if its an integer)
{
MessageBox.Show("Press RESET and use a value greater than 0");
btn_left.Enabled = false;
btn_right.Enabled = false;
textBox1.ResetText();
}
else if (left == max)
{
MessageBox.Show("Winner: Left Player");
textBox1.Enabled = false;
btn_left.Enabled = false;
btn_right.Enabled = false;
}
else if (right == max)
{
MessageBox.Show("Winner: Right Player");
textBox1.Enabled = false;
btn_left.Enabled = false;
btn_right.Enabled = false;
}
}
private void btn_left_Click(object sender, EventArgs e)
{
left = left + 1;
lbl_score.Text = left.ToString() + " - " + right.ToString();
winner();
}
private void btn_right_Click(object sender, EventArgs e)
{
right = right + 1;
lbl_score.Text = left.ToString() + " - " + right.ToString();
winner();
}
private void btn_reset_Click(object sender, EventArgs e)
{
textBox1.Enabled = true;
textBox1.Text = "0";
btn_left.Enabled = true;
btn_left.Enabled = true;
left = 0;
right = 0;
lbl_score.Text = left.ToString() + " - " + right.ToString();
}
编辑:我检查了评论中建议的其他解决方案,但 none 的答案似乎对我有用,除了我在此线程中选择的那个
您需要解析文本以确保它是一个数字
public void winner()
{
if (!int.TryParse(textBox1.Text, out int max))
{
MessageBox.Show("Dem numbers aren't numbers");
return;
}
...
Int32.TryParse Method (String, Int32)
Converts the string representation of a number to its 32-bit signed integer equivalent. A return value indicates whether the conversion succeeded.
使用 TryParse 进行测试编号输入
private bool function GreaterNumber(string text)
{
bool result = Int32.TryParse(myTextBox.Text, out number);
return result && number > 0;
}
您可以在后面添加以下代码行:
int max;
bool result = Int32.TryParse(textBox1.Text, out max);
if (result && max > 0) ...
感谢@john 的建议。
干杯!
您可以先使用 int.TryParse(n, out value) 检查整数,然后检查是否大于零。
int value;
bool success=int.TryParse(n, out value);
if(success)
{
if(n>0)
//do something
}
尝试
string a = textBox1.txt;
int b;
bool ans = int.TryParse(a, out b);
if (ans == true)
{
// your code
}
else
{
MessageBox.Show("invalid input"). // or whatever you want.
}
如果您已经在别处声明了 a、b 变量,请更改名称。