Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-将滑块连接到文本框并读取文本框值_C#_Slider - Fatal编程技术网

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(); }
}