文本框最大/最小数值c#

本文关键字:小数 文本 | 更新日期: 2023-09-27 18:14:47

我想创建一个if语句,用于验证文本框中的输入数字是否在0到100之间。例如:

NumericUpDown num = new NumericUpDown();
num.Maximum = 100;
num.Minimum = 0;
if (int.Parse(txtMid.Text) < num.Minimum && int.Parse(txtMid.Text) > num.Maximum)
{
    MessageBox.Show("Please input 0 to 100 only.");
}

文本框最大/最小数值c#

您需要解析txtbox1。将文本字符串转换为整数:

int val = 0;
bool res = Int32.TryParse(txtbox1.Text, out val);
if(res == true && val > -1 && val < 101)
{
    // add record
}
else
{
    MessageBox.Show("Please input 0 to 100 only.");
    return;
}

另外,您需要测试一个或两个文本框吗?如果它只有1,而您需要的间隔是0,100,那么您的条件是错误的,因为它总是返回false(一个数字不能同时是<= -1和>= 101)。

非常重要:我颠倒了你的if/else:你必须在else中打印错误并在if中添加记录

首先将文本转换为Int,然后您可以比较它。但要注意输入的文本可能不是数字例如,用户可以输入abc而不是12

您可以使用Int.TryParse(String)方法检查文本框中是否包含有效的数字。如果数字有效,则应用

下面的If条件
if(Convert.ToInt32(txtbox1.Text) <= -1 && Convert.ToIn32(textbox2.Text >= 101)
{
}

其他答案回答了您的直接问题,但输入数字的更好选择是使用限制输入数字的NumericUpDown控件,并提供自旋控件。

基本上你要做的是:

  • 从文本框中获取当前文本
  • 将文本转换为数字(对类型使用TryParse方法)。
  • 如果文本无法转换为数字,通知用户并将文本框恢复为最后已知的有效值(或空字符串,如果没有该值存在)。如果您不这样做,您将使文本框处于无效状态,这可能不是您想要的。
  • 如果文本可以被转换,检查它是否在给定的范围内。如果是,将其存储为最后一个已知的好值,以供以后使用。如果没有,通知用户并将文本框恢复到上次已知的好值。

文本框。Text属性将返回字符串形式的值。首先你要把那个字符串解析成整数。您可以使用以下代码:

int num = -2;
bool conversionSuccessful = int.tryParse(txtbox1.Text, out num);
if(conversionSuccessful) {
    if (num <= -1 && num >= 101) {
        MessageBox.Show("Please input 0 to 100 only.");
    return;
    }
}

你可以在这里和这里找到更多关于转换的信息

int val1=0,val2=0
try
{
val1 = Convert.ToInt32(txtbox1.Text);
val2 = Convert.ToIn32(textbox2.Text); 
}
catch
{
MessageBox.Show("Invalid Input");
}
// Do all the Checking here....