【问题标题】:c# winForm adding value to number in texboxc# winForm为文本框中的数字添加值
【发布时间】:2012-06-06 06:47:33
【问题描述】:

在我的程序中,我有几个带有对应名称的 texbox 和按钮(例如 TextBox1 - buttonPlus1),如图所示

但是有从文本文件加载的数字。 我想编写允许我按下按钮 + 并从文本框中放大(添加固定数字,例如 100)值的函数。到目前为止,我已经完成了:

  private void buttonPlus1_Click(object sender, EventArgs e)
    {
        AddValue(sender,e);
    }

    private void AddValue(object sender, EventArgs e)
    {
        if (!(sender is Button))
            return;

        string controlName = (sender as Button).Name;
        string textBoxName = controlName.Replace("buttonPlus", "textBox");

        TextBox textBox = this.Controls.Find(textBoxName, false)[0] as TextBox;
        int step = 100;



    }

但我不知道如何从 textBox 中获取值(作为数字)并添加该步骤。有人能帮帮我吗?我尝试通过多种不同的方式自己解决它,但它不起作用

【问题讨论】:

  • 可以在按钮的.Tag属性中添加对应文本框的引用。然后您的代码将使用 (sender.Tag as TextBox).Value = ... 赋值

标签: c# winforms button textbox


【解决方案1】:

获取值:

Convert.ToInt32(textBox.Text)

将它保存到一个变量中,加 100 并像往常一样设置它。

附:你也可以使用Int32.Parse("")

textBox.Text = Convert.ToInt32(textBox.Text) + 100;

(你可能需要.ToString()它)

编辑: 正如 ltiong_sh 提到的,您应该使用 TryParse 而不是 Parse:

int somevalue;
if(Int32.TryParse(textBox.Text, out somevalue))
{
    textBox.Text = somevalue + 100;
}

【讨论】:

  • 可能应该使用 Int32.TryParse()
  • 好的,感谢您的帮助!它适用于:
    int newValue = Convert.ToInt32(textBox.Text) + step;
    textBox.Text = Convert.ToString(newValue);
  • @Juss 我很高兴听到。不要忘记接受作为答案。 Itiong_sh - 感谢您指出这一点。
【解决方案2】:

您需要将字符串转换为整数

int txtValue = Convert.ToInt32(textBox.Text) + 100;

【讨论】:

    【解决方案3】:

    确保验证文本字段中的文本。否则解析时会抛出异常。

    你可以这样做

    int value = 0;
    if(Int32.TryParse(textBox.Text, out value))
    {
       value += step;
       textBox.Text = value.ToString();
    }
    else
    {
       //inform user to enter int
    }
    

    【讨论】:

      【解决方案4】:

      这就是你要找的:

      int newValue = Convert.ToInt32(textBox.Text) + step;
      

      要将值放回文本框中,您可以执行以下操作:

      textBox.Text = newValue.ToString();
      

      编辑:

      正如其他人所说,您应该使用 Int32.TryParse 来防止引发错误。

      if(Int32.TryParse(textBox.Text, out newValue))
      {
          newValue += step;
          textBox.Text = newValue.ToString();
      }
      

      【讨论】:

        【解决方案5】:

        在按钮中单击获取文本框值并将其转换为整数格式并添加 100。之后将文本框值重置为修改后的值。这就是你需要的。

        private void buttonPlus1_Click(object sender, EventArgs e)
        {
           try
           {
               int txtValue = Convert.ToInt32(textBox.Text) + 100;
               textBox.Text = txtValue.ToString();
           }
           catch(Exception ex)
           {
             MessageBox.Show(ex.Message.ToString());
           }
        }
        

        【讨论】:

          猜你喜欢
          • 2021-03-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多