我是C#的新手,我想将滑块的值转换为文本框。我找到的一个选项是为文本框设置绑定,但我需要在事件中发送值。 我尝试了一些解决方案,但没有成功。
private void sliderName_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Slider sliderName = sender as Slider;
TextBox textBoxName = new TextBox();
textBoxName.Text = sliderName.Value.ToString();
}
感谢您的帮助和对我的耐心。 :)
答案 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属性时将发送者作为滑块进行投射。
向您展示不同的选项和不同的做同样事情的方式。