当没有输入值时,c#文本框的int()不工作

本文关键字:int 工作 文本 输入 | 更新日期: 2023-09-27 18:05:55

我刚开始用c#编程。我试图将字符串转换为整型。这样的:

int.Parse(textBox1.Text);

当我输入一个值时,这是正常工作的,但是当没有输入任何东西并且我按下按钮时,这会给我异常。我该怎么办?有一个函数可以解决这个问题吗?由于

当没有输入值时,c#文本框的int()不工作

使用int.TryParse代替,它不会在解析失败时抛出异常。

将数字的字符串表示形式转换为其等效的32位有符号整数。返回值指示转换是否成功。

int number;
bool isValid = int.TryParse(textBox1.Text, out number);
if(isValid)
{
   // parsing was successful
}

实现这一点的一种方法是使用int.tryParse()而不仅仅是int.Parse()。然后可以检查结果,看看输入的格式是否正确。下面是一个示例:

int userInput;
if(!int.TryParse(textBox1.Text, out userInput))
{
   //error in input here
}

执行后,如果int.TryParse()返回true,那么您将在userInput变量中获得一个有效值。

或者,您可以将其包装在try-catch中,但如果可能的话,最好尝试解析并处理它而不出现异常。

将以下代码放在按钮事件下。它将确保输入到文本框中的文本/数字能够转换为整数。此外,它将确保文本框中输入了数字/文本。

if (textBox1.Text != "")
{
    try
    {
        Convert.ToInt32(textBox1.Text);
    }
    catch
    {
        /*
        Characters were entered, thus the textbox's text cannon be converted into an integer.
        Also, you can include this line of code to notify the user why the text is not being converted into a integer:
        MessageBox.Show("Please enter only numbers in the textbox!", "PROGRAM NAME", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
        */
    }
}
/*
else
{
    MessageBox.Show("Please enter numbers in the textbox!", "PROGRAM NAME", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);     
}
*/

这很简单。你可以在你的按钮点击事件上这样做:

int number;
if (int.TryParse(textbox1.Text, out number))
{
    // number is an int converted from string in textbox1.
    // your code
}
else
{
    //show error output to the user
}
    Try below given solution
    <script type="text/javascript">
    function myFunction() {
                alert('Please enter textbox value.');
            }
     </script>
    And in the button click event use below given logic.
    if (TextBox1.Text == "")
    {
       //Call javascript function using server side code.
ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "myFunction()", true);
    }
    else
    {
       int value;
       value = int.Parse(TextBox1.Text);
     }