3

私のプログラムでは、写真のように、対応する名前(TextBox1-buttonPlus1など)を持ついくつかのtexboxとボタンがあります

ここに画像の説明を入力してください

しかし、テキストファイルからロードされた数字でいっぱいです。ボタン+を押して、テキストボックスから値を拡大(たとえば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が述べたように、ParseではなくTryParseを使用する必要があります。

int somevalue;
if(Int32.TryParse(textBox.Text, out somevalue))
{
    textBox.Text = somevalue + 100;
}
于 2012-06-01T01:27:02.813 に答える
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 に答える
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

ボタンをクリックしてテキストボックスの値を取得し、整数形式に変換して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 に答える