-4

私はC#を初めて使用し、ボタンを押したときに長方形の高さをテキストボックスの数値の値に変更しようとしています。

だから私はそれをハードコードすると私は得る

private void btnGrafiek_Click(object sender, RoutedEventArgs e)
    {
        rct2010.Height = 150;
    }

これはtexboxなしで、うまくいきました。テキストボックスを使用する場合、これを行う必要があると思いました:

private void btnGrafiek_Click(object sender, RoutedEventArgs e)
    {
        rct2010.Height = txt2010.Text;
    }

しかし、これはうまくいきません。誰かがこれで私を助けることができますか?

4

3 に答える 3

0

高さは整数ですが、テキストは文字列です。文字列が整数に解析できない場合、これは安全ではありませんが、単純な例では機能します。

private void btnGrafiek_Click(object sender, RoutedEventArgs e)
{
    rct2010.Height = int.Parse(txt2010.Text);
}

本当に安全にするには、TryParse を使用します。

private void btnGrafiek_Click(object sender, RoutedEventArgs e)
{
    int height;
    if(int.TryParse(txt2010.Text,out height))
    {
       rct2010.Height = height;
    }
    else
    {
       rct2010.Height = 150;
    }
}
于 2013-10-01T19:07:20.790 に答える
0

intに変換します

private void btnGrafiek_Click(object sender, RoutedEventArgs e)
    {
        rct2010.Height = int.Parse(txt2010.Text);
    }

または、さらに一歩進むことができます

private void btnGrafiek_Click(object sender, RoutedEventArgs e)
{
    int i = 0;
    if(int.TryParse(txt2010.Text, out i)
        rct2010.Height = i;
    else
        MessageBox.Show("That's not a number");
}
于 2013-10-01T19:07:26.887 に答える
0

おそらく の型はHeightisintであるため、型の値を代入してstringも機能せず、そのように示すコンパイル時エラーが発生します (自由に明確にしてください)。次のように型を変換する必要があります。

int height = 0;
if (int.Parse(txt2010.Text, out height)) {
  rct2010.Height = height;
}

(TryParse他の方法で提案されている とは対照的にParse) は、値を解析できない場合 (つまり、不適切な予期しない入力) にアプリケーションが例外に遭遇しないようにします。しかし一方で、これはアプリケーションが明らかに入力に対して何もしないことを意味するため (そうではないため)、elseケースを使用してユーザーに通知することをお勧めします。

于 2013-10-01T19:08:16.577 に答える