2012-11-04 8 views
1

J'ai un passé assez décent en Java et en C++, mais j'ai du mal à faire quelque chose de trivial en C#. J'ai deux TextBoxes: MessageBox et SenderBox. Je veux envoyer le texte de SenderBox à MessageBox (ce qui est facile), mais je veux effacer SenderBox une fois cela fait. Ce qui suit est essentiellement le code qui est déclenché lorsque vous appuyez sur Entrée pour envoyer le texte:Comment effacer un TextBox?

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

La plupart des langages de programmation sont un peu de procédure ou au moins exécuter d'une manière ordonnée. Pourquoi les applications C#/WPF pour Windows 8 semblent-elles défier cette norme? Vous vous attendez à ce que la température soit égale à la valeur de SenderBox, tout d'abord. Si vous regardez le code, tempne devrait pas égale "effacé" à moins que ce soit ce que SenderBox contient. À ce moment-là (ligne 1), ce n'est pas le cas. J'ai essayé de créer une fonction send(msg) pour déréférencer la chaîne étrange, mais cela n'a rien changé. Le code suivant s'exécute comme prévu:

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

Quelqu'un peut-il m'éclairer? Pas sûr de ce qui se passe ici.

+0

Merci pour le lien – ICoffeeConsumer

+0

Votre code fonctionne pour moi, je ne peux pas reproduire votre problème, auquel cas utilisez-vous pour traiter la clé d'entrée? Assurez-vous qu'il n'est pas tiré deux fois. –

+0

Cela ne devrait vraiment pas arriver ... Ça marche ici aussi. – sinni800

Répondre

1

Si vous n'êtes pas essayer de changer le contenu des deux boîtes, pourquoi ne pas tout simplement:

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

Parce que cela ne fonctionne pas pour la même raison, mon code ne fonctionne pas. Quelqu'un a déjà proposé cela alors a révoqué leur réponse ... merci d'essayer cependant. – ICoffeeConsumer

+1

Eh bien, je suggérerais 'MessageBox.Text = string.Copy (SenderBox.Text);' avec la mise en garde que si cela fonctionne c'est un bogue de l'infrastructure car ils ont spécifié que les chaînes sont supposées être immuables. – CrazyCasta

Questions connexes