C#-将滑块连接到文本框并读取文本框值
我的主页()中有以下代码行:C#-将滑块连接到文本框并读取文本框值,c#,slider,C#,Slider,我的主页()中有以下代码行: string str = tbx1.Text; 然后我有一个滑块可以更改此文本框: private void Slider_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e) { Slider slider1 = sender as Slider; tbx1.Text = slider1.Value.ToStrin
string str = tbx1.Text;
然后我有一个滑块可以更改此文本框:
private void Slider_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Slider slider1 = sender as Slider;
tbx1.Text = slider1.Value.ToString();
}
private void Slider\u ValueChanged\u 1(对象发送方,RoutedPropertyChangedEventArgs e)
{
Slider slider1=发送器作为滑块;
tbx1.Text=slider1.Value.ToString();
}
当我运行应用程序时,会读入
tbx1
的默认值,并且可以使用滑块进行更改。但是如何将tbx1
的新值读入str
?似乎只有默认值保留在str
中,如果您想在tbx1.Text时更改str,则可以执行以下操作:
你可以在课堂上声明你的价值观
private string _str
然后,您必须编写代码:(您必须在文本框中添加Leave函数)
private void tbx1_Leave(对象发送方,事件参数e)
{
_str=tbx1.Text;
}
私有无效滑块\u值已更改\u 1(对象发送方,RoutedPropertyChangedEventArgs e)
{
Slider slider1=发送器作为滑块;
_str=tbx1.Text=slider1.Value.ToString();
}
如果字符串是可访问的,则可以执行以下操作
private void Slider_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Slider slider1 = sender as Slider;
tbx1.Text = slider1.Value.ToString();
str = slider1.Value.ToString();
}
private void Slider\u ValueChanged\u 1(对象发送方,RoutedPropertyChangedEventArgs e)
{
Slider slider1=发送器作为滑块;
tbx1.Text=slider1.Value.ToString();
str=slider1.Value.ToString();
}
您可以将字符串包装在属性中并动态访问它:
string Str
{
get { return tbx1.Text; }
set { tbx1.Text = value; }
}
如果只需要读取字符串,则可以删除setter:
string Str
{
get { return tbx1.Text; }
}
使用属性Str
代替变量Str
。这将始终产生实际值(示例):
更新
或者,您可以直接从滑块获取值
string Str
{
get { return slider1.Value.ToString(); }
}
字符串str=tbx1.Text的代码在哪里?如果将变量str移动到成员级别,则可以在slider changed Event中更新它,具体取决于您对字符串变量所做的操作是否需要它?您可以直接访问文本框text,我必须将字符串str=tbx1.text放在哪里;然后?@user1189952滑块\u值在主页或另一个窗口中更改了\u 1?字符串仍然不接受新值。我不明白为什么以及如何解决这个问题。在\u str=tbx1.Text=slider1.Value.ToString()行上设置一个断点代码>,您将看到变量是否已更新。我必须将字符串result=Str;放在哪里;?在滑块代码内部,它不起作用。string result=Str代码>只是模拟阅读str
。这只是一个例子。将它(或您需要的代码)放在您以前访问的str
位置。您真的不需要有这个字符串结果=
。我可以写Console.WriteLine(Str)代码>也是。属性Str
是变量Str
的动态替换。无论放置在何处,原始字符串的值都不会被新值替换。现在该怎么办?想法是使用属性Str
,而不是字符串变量Str
。删除变量str
!我在MainPage()和slider方法中尝试了这一点。两者都不起作用。结果未被更新。
string result = Str;
string Str
{
get { return slider1.Value.ToString(); }
}