0

我是 C# 新手,我想将滑块的值转换为文本框。我发现的一个选项是为文本框设置绑定,但我需要在事件中发送值。我尝试了一些解决方案,但没有奏效。

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 中以您在设计时给它的名称引用它。例如,如果您只是将 aTextBox放在表单上,​​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

或者更快的方法:

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

这篇文章和 Ken 的文章之间的唯一区别是,我在设置 textBox1 的 text 属性时将发件人转换为滑块。

只是向您展示不同的选择和做同一件事的不同方式。

于 2012-06-01T21:56:29.000 回答
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 回答