【问题标题】:Only allow digits in textbox C# [duplicate]仅允许文本框中的数字 C# [重复]
【发布时间】:2013-02-04 23:10:13
【问题描述】:

可能重复:
How can I allow only 0 or 1 to be entered in a TextBox?
Allow only integers in TextBoxes

我现在正在开发一个程序,我有几个简单的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;
    }
    

【问题讨论】:

标签: c# textbox digits


【解决方案1】:

你需要做一个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;

【讨论】:

  • 再次使用Convert.ToInt32的原因是什么?结果有值..?
  • ConvertToInt32 隐式调用int.Parse。但是如果字符串为空,int.Parse 会抛出异常,而Convert.ToInt32 返回 0。
  • 为更好的编码实践而编辑。任何一个都应该工作
  • 没有真正的工作不:可能是我,生病添加其余代码以使其更清晰
  • @DJBurb 我从来没见过这样用过..
猜你喜欢
  • 2012-10-26
  • 2015-09-03
  • 2014-04-08
  • 2016-10-14
  • 2011-11-09
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多