2014-02-28 109 views
0

我在我的MainPage()下面的代碼行:C# - 連接滑塊文本框和文本框的值讀

string str = tbx1.Text; 

然後,我有改變這個文本框滑塊:

private void Slider_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e) 
    { 
     Slider slider1 = sender as Slider; 
     tbx1.Text = slider1.Value.ToString(); 

    } 

當我運行應用程序時,會讀入默認值tbx1,並且可以使用滑塊更改它。但是,如何將tbx1的新值讀入str?似乎只有默認值保存在str

+0

字符串str = tbx1.Text的代碼在哪裏?如果你將變量str移動到一個成員級別,那麼你可以更新滑塊更改事件 – WraithNath

+0

,這取決於你對字符串變量做了什麼,你甚至需要它嗎?你可以直接訪問文本框文本 – WraithNath

回答

0

你可以用在一個屬性字符串,並動態地訪問它:

string Str 
{ 
    get { return tbx1.Text; } 
    set { tbx1.Text = value; } 
} 

如果你只需要讀取的字符串,那麼你可以刪除這個二傳手:

string Str 
{ 
    get { return tbx1.Text; } 
} 

使用屬性代替變量str而代替Str。這將始終產生的實際值(例如):

string result = Str; 

UPDATE

或者,你可以直接得到滑塊的價值。

string Str 
{ 
    get { return slider1.Value.ToString(); } 
} 
+0

我必須把字符串result = Str ;?在滑塊代碼內部它不起作用。 – user1189952

+0

'string result = Str;'只是模擬讀'str'。這只是一個例子。把它放在你以前訪問過'str'的​​地方(或者你需要的代碼)。你真的不需要這個'string result ='。我也可以編寫'Console.WriteLine(Str);'。屬性'Str'是變量'str'的​​動態替換。 –

+0

無論我將它放在哪裏,原始字符串的值都不會被新值替換。現在做什麼? – user1189952

0

,如果你想改變海峽時tbx1.Text你可以這樣做:

遵守前面宣告你的價值在你的類

private string _str 

,那麼你必須讓你的代碼:(你必須添加離開功能你的文本框)

private void tbx1_Leave(object sender, EventArgs e) 
{ 
    _str = tbx1.Text; 
} 

private void Slider_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e) 
{ 
    Slider slider1 = sender as Slider; 
    _str = tbx1.Text = slider1.Value.ToString(); 

} 
+0

我在哪裏必須把字符串str = tbx1.Text;然後? – user1189952

+0

@ user1189952 Slider_ValueChanged_1在主頁面還是在另一個窗口中? – Akrem

+0

在主頁面 – user1189952

1

如果字符串是accessable你可以做以下

private void Slider_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e) 
{ 
    Slider slider1 = sender as Slider; 
    tbx1.Text = slider1.Value.ToString(); 
    str = slider1.Value.ToString(); 
}