3

在我的程序中,我有几个带有对应名称的 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 中获取值(作为数字)并添加该步骤。有人能帮帮我吗?我试图以多种不同的方式自己解决它,但它不起作用

4

5 回答 5

3

获取值:

Convert.ToInt32(textBox.Text)

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

PS你也可以使用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;
}
于 2012-06-01T01:27:02.813 回答
0

在按钮中单击获取文本框值并将其转换为整数格式并添加 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());
   }
}
于 2013-12-08T00:40:32.813 回答
0

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

你可以这样做

int value = 0;
if(Int32.TryParse(textBox.Text, out value))
{
   value += step;
   textBox.Text = value.ToString();
}
else
{
   //inform user to enter int
}
于 2012-06-01T01:36:33.847 回答
0

这就是您要查找的内容:

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();
}
于 2012-06-01T01:26:51.850 回答
0

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

int txtValue = Convert.ToInt32(textBox.Text) + 100;
于 2012-06-01T01:28:50.200 回答