2012-11-04 493 views
1

我在Java和C++中擁有相當不錯的背景,但我正在努力在C#中做一些微不足道的事情。我有兩個TextBoxesMessageBoxSenderBox。我想將文本從SenderBox發送到MessageBox(這很容易),但是一旦完成,我想清除SenderBox。下面基本上是當你按下Enter鍵發送文本被解僱的代碼:如何清除文本框?

string temp = SenderBox.Text; 
SenderBox.Text = "cleared"; 
MessageBox.Text = temp; 

大多數編程語言有些程序或以某種有序至少執行。爲什麼Windows 8應用程序的C#/ WPF似乎違背了這個標準?首先,您預計溫度將被設置爲等於的值SenderBox。如果你看代碼,temp不應該等於「清除」,除非這是SenderBox包含。在那一點(第1行),它沒有。我試圖創建一個send(msg)函數來解引用這個奇怪的字符串,但這並沒有改變一件事情。以下代碼按預期方式運行:

string x = "abc"; 
string y = x; 
y = "123"; 
MessageBox.Text = x; 

有人能夠啓發我嗎?不知道這裏發生了什麼。

+0

感謝您的鏈接 – ICoffeeConsumer

+0

您的代碼對我的作品,我不能重複你的問題,這事件你用來處理回車鍵嗎?確保它沒有被解僱兩次。 –

+0

這真的不應該發生......它也適用於這裏。 – sinni800

回答

1

如果你還沒有嘗試切換兩個盒子,爲什麼不只是做的內容:

MessageBox.Text = SenderBox.Text; 
SenderBox.Text = "cleared"; 
+0

由於它不起作用的原因相同,我的代碼不起作用。有人已經提出這個,然後撤銷了他們的答案......儘管如此,謝謝你的努力。 – ICoffeeConsumer

+1

那麼,我會建議'MessageBox.Text = string.Copy(SenderBox.Text);'與警告,如果這個工程是一個框架的錯誤,因爲他們已經指定字符串應該是不可變的。 – CrazyCasta