【问题标题】:How can I clear a TextBox?如何清除文本框?
【发布时间】:2012-10-24 07:30:35
【问题描述】:

我在 Java 和 C++ 方面有相当不错的背景,但我正在努力在 C# 中做一些微不足道的事情。我有两个TextBoxesMessageBoxSenderBox。我想将文本从SenderBox 发送到MessageBox(这很容易),但是一旦完成,我想清除SenderBox。以下基本上是按 Enter 发送文本时触发的代码:

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

大多数编程语言在某种程度上是程序化的,或者至少以某种有序的方式执行。为什么 Windows 8 应用程序的 C#/WPF 似乎违反了这个标准?首先,您希望 temp 设置为等于 SenderBox。如果您查看代码,temp 不应该 等于“已清除”,除非 SenderBox 包含这些内容。在这一点上(第 1 行),它没有。我试图创建一个send(msg) 函数来取消引用奇怪的字符串,但这并没有改变任何事情。以下代码按预期运行:

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

有人可以启发我吗?不知道这里发生了什么。

【问题讨论】:

  • 您的代码对我有用,我无法复制您的问题,您使用哪个事件来处理回车键?确保它没有被触发两次。
  • 这真的不应该发生......它也可以在这里工作。

标签: c# wpf windows-8


【解决方案1】:

如果您不想切换两个框的内容,为什么不这样做:

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

【讨论】:

  • 因为它不起作用,原因与我的代码不起作用。有人已经提出了这个然后撤销了他们的答案......不过感谢您的尝试。
  • 好吧,我建议MessageBox.Text = string.Copy(SenderBox.Text);,但需要注意的是,如果这可行,那是一个框架错误,因为他们已经指定字符串应该是不可变的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多