2012-06-01 25 views
0

我是C#中的新成員,我想將滑塊的值轉換爲文本框。我發現的一個選項是爲文本框設置綁定,但我需要在事件中發送值。 我嘗試了一些解決方案,但沒有奏效。如何將滑塊值轉換爲文本框

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

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

    } 

感謝您對我的幫助和耐心等待。 :)

回答

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

} 

更新,以反映基於下面的評論名稱更改。

+0

我在IDE中並在此過程中使用相同的名稱。 – Crooker

+0

不,你正在**程序中創建一個**,它將IDE中的一個從範圍中移出(不能被看到)。就像我說的那樣,*刪除*在你的事件處理程序中創建新行的行(帶有'new TextBox()'的行)。 –

+0

它給了我「nullreferenceexception was unhandled」的錯誤。這是我的第一個解決方案。 – Crooker

0

您的方法可能會工作,除了你是這個事件處理程序本地聲明一個新的TextBox,所以你永遠不會在屏幕上看到任何東西。

嘗試在窗體中設置TextBox的.Text屬性;

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

如果我在窗體中設置了一些值,滑塊移動後沒有任何變化。 Crooker

+0

根據此評論更新了代碼 - 爲滑塊posuvnik =發件人設置了'difficultyBox'的.Text屬性 –

+0

; difficultyBox.Text = posuvnik.Value.ToString();我有「nullreferenceexception was unhandled」錯誤 – Crooker

0

或更快的方法:

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

這個職位之間的唯一差別,Ken的帖子是我鑄造發件人的滑塊,同時設置textBox1的Text屬性。

只是顯示你不同的選擇和做不同的方式做同樣的事情。

+0

更快在這裏不是問題。提問者顯然不熟悉C#。在教授優化之前教基礎知識。 (而且你實際上並沒有回答所問的問題,而且你需要用一個探查器向我證明,你的方式實際上**更快**,而且方式很重要。打字的立場,但從性能的角度來看,這並不重要,從一個新的程序員的可讀性來看,這是不可理解的。) –

+0

對不起,我只是展示了一種不同的方式。但你的權利;我應該解釋一下。 – Botonomous

+0

@KenWhite Woah男人,我絕不意味着它在表現方面速度很快,我的意思是寫得更快,閱讀更快......我絕對沒有試圖粗魯,我只是用不同的方式做一些事情。我認識到我在這篇文章中似乎沒有解釋,但請不要曲解。 – Botonomous