如何将滑块值转换为文本框

时间:2012-06-01 21:47:28

标签: c#

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

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

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

    }

感谢您的帮助和对我的耐心。 :)

3 个答案:

答案 0 :(得分:1)

您正在创建新的TextBox,但不会将其定位在任何位置。

您的表单上已经有TextBox,并且在设计时通过IDE提供的名称引用它。例如,如果您只是在表单上放置TextBox,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();

}

根据以下评论更新以反映名称更改。

答案 1 :(得分:0)

您的方法可能会有效,除非您声明此事件处理程序的本地新TextBox,因此您将永远不会在屏幕上看到任何内容。

尝试在表单中设置TextBox的.Text属性;

private void sliderName_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    Slider sliderName = sender as Slider;
    difficultyBox.Text = sliderName.Value.ToString();
}

答案 2 :(得分:0)

或者更快的方式:

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

这篇文章和Ken的帖子之间的唯一区别是我在设置textBox1的text属性时将发送者作为滑块进行投射。

向您展示不同的选项和不同的做同样事情的方式。