2013-02-04 223 views
1

可能重复:
How can I allow only 0 or 1 to be entered in a TextBox?
Allow only integers in TextBoxes只允许在文本框C#数字

我工作的一个程序,现在我有几个简单的textboxes。当textbox的输入不是数字时,我不断收到错误,因为它试图将其转换为整数。

的代码非常简单:

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; 
    } 
    
+0

我不知道这是否是要你的需要,但可能有助于http://blog.csharphelper.com/2012/11/ 20/throw-standard-exceptions-in-c.aspx –

回答

3

你需要做一个int.TryPase

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

int result; 
int optelNumber; 
     if (int.TryParse(textBox2.Text, out result)) 
      optelNumber = result; 
+3

再次使用'Convert.ToInt32'的原因是什么?结果有价值..? –

+0

您可以使用/或 –

+0

'ConvertToInt32'隐式调用'int.Parse'。但是,如果字符串为空,则“int.Parse”将引发异常,而“Convert.ToInt32”返回0. –

相关问题