0

私はC#を初めて使用し、スライダーの値をテキストボックスに変換したいと思います。私が見つけたオプションの1つは、テキストボックスのバインドを設定することですが、イベントで値を送信する必要があります。私はいくつかの解決策を試しましたが、うまくいきませんでした。

private void sliderName_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
    {
        Slider sliderName = sender as Slider;
        TextBox textBoxName = new TextBox();

        textBoxName.Text = sliderName.Value.ToString();

    }

助けてくれてありがとう、そして私を我慢してください。:)

4

3 に答える 3

1

新しいを作成していますがTextBox、どこにも配置していません。

TextBoxフォームにはすでにフォームがあり、IDEで設計時に付けた名前で参照する必要があります。たとえばTextBox、フォームにaをドロップするだけの場合、IDEはフォームにのような名前を付けtextBox1、その名前で使用します。

private void sliderName_ValueChanged(object sender, 
   RoutedPropertyChangedEventArgs<double> e)
{
    // Don't use the same name used on the form if you're
    // declaring a variable here. Use a name that's local to
    // this event.
    Slider slide = sender as Slider;

    // Use the IDE-set name here.
    difficultyBox.Text = slide.Value.ToString();

}

以下のコメントに基づいて名前の変更を反映するように更新されました。

于 2012-06-01T21:53:32.137 に答える
0

このイベントハンドラーに対してローカルの新しいTextBoxを宣言していることを除いて、あなたのアプローチはおそらく機能するでしょう。そのため、画面には何も表示されません。

フォームにTextBoxの.Textプロパティを設定してみてください。

private void sliderName_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    Slider sliderName = sender as Slider;
    difficultyBox.Text = sliderName.Value.ToString();
}
于 2012-06-01T21:53:13.953 に答える
0

またはさらに高速な方法:

private void sliderName_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
 textBox1.Text = ((Slider)sender).value.ToString();
}

この投稿とKenの投稿の唯一の違いは、textBox1のtextプロパティを設定しているときに、送信者をスライダーとしてキャストしていることです。

さまざまなオプションと同じことを行うさまざまな方法を示すだけです。

于 2012-06-01T21:56:29.000 に答える