C# 仅允许文本框C中的数字#

C# 仅允许文本框C中的数字#,c#,textbox,digits,C#,Textbox,Digits,可能重复: 我现在正在编写一个程序,我有几个简单的文本框。当文本框的输入不是一个数字时,我不断收到一个错误,因为它试图将其转换为整数 代码非常基本: int optelNumber = Convert.ToInt32(textBox2.Text); MessageBox.Show("Please enter a digit."); //if optelNumber is not a digit 例如: input in textbox = "Hello !" => p

可能重复:

我现在正在编写一个程序,我有几个简单的
文本框
。当
文本框
的输入不是一个数字时,我不断收到一个错误,因为它试图将其转换为整数

代码非常基本:

    int optelNumber = Convert.ToInt32(textBox2.Text);
    MessageBox.Show("Please enter a digit."); //if optelNumber is not a digit
例如:

input in textbox = "Hello !" => pops up the Mess.Box
input in textbox = 123245 => keep running the program
希望这是足够的信息。我搜索了几乎所有其他主题,但所有的代码都是为我准备的( 谢谢你的时间

  • 编辑:
messagebox
用于捕获错误并防止程序崩溃

  • 编辑:

    int vedett = 0, duvel = 0, kDuvel = 0, kriek = 0, pils = 0;
    
    //only digits allowed here
    int optelNumber = Convert.ToInt32(textBox2.Text);
    
    switch(comboItem)
    {
    case "vedett":
      vedett += optelNumber;
      break;
    case "duvel":
      duvel += optelNumber;
      break;
    case "kl. duvel":
      kDuvel += optelNumber;
      break;
    case "pils":
      pils += optelNumber;
      break;
    case "kriek":
      kriek += optelNumber;
      break;
    case "":
      MessageBox.Show("Kies een andere drank.");
      break;
    }
    

你需要做一个
int.TryPase

    int result;
    if (int.TryParse(textBox2.Text, out result))
      int optelNumber = Convert.ToInt32(textBox2.Text);


我不知道这是否是您需要的,但可能会有帮助。再次使用
Convert.ToInt32
的原因是什么?结果具有值..?
ConvertToInt32
隐式调用
int.Parse
。但是如果字符串为空
int.Parse
则抛出异常,而
Convert.ToInt32
则返回0.edited以获得更好的编码g实践。任何一个都应该工作,但实际上不工作不:可能是我,我会添加其余的代码使其成为mroeclearly@DJBurb我只是从来没见过它被那样使用。。
int result;
int optelNumber; 
        if (int.TryParse(textBox2.Text, out result))
          optelNumber  = result;