自定义按钮将字符输入到TextBox中?

时间:2011-12-15 18:39:19

标签: c# silverlight windows-phone-7

我刚刚开始学习Windows Phone 7开发,C#和Silverlight。我正在制作摩尔斯电码翻译作为练习,但我遇到了一个问题。我为用户制作了三个按钮,将莫尔斯电码输入TextBox。一个用于期间,第二个用于行,最后一个用于空间。问题是我似乎无法使用此方法在TextBox中输入多个字符,而只是相互覆盖。

以下是我尝试在点击事件中执行此操作的方法。

private void bShort_Click(object sender, RoutedEventArgs e)
{
    char dot = ".";   
    TBoxMorse2.Text = dot.ToString();
}

我应该如何解决这个问题?

很抱歉,如果有人问这个问题。我试图搜索它,但在StackOverflow上没有发现任何类似的问题。

先谢谢大家查看!

3 个答案:

答案 0 :(得分:3)

你明确地覆盖了这个值:

TBoxMorse2.Text = dot.ToString();

通过设置属性,您可以覆盖已存在的任何内容。您不希望将该属性设置为新值。您希望将其设置为现有值 plus 新值:

TBoxMorse2.Text += dot.ToString();
// or more explicitly, if you're not familiar with the += operator...
TBoxMorse2.Text = TBoxMorse2.Text + dot.ToString();
// or if you want to use string.Format,
// since I once heard somewhere that it performs better than concatenation...
TBoxMorse2.Text = string.Format("{0}{1}", TBoxMorse2.Text, dot.ToString());

像往常一样,有多种方法可以做到。

旁注,您的TBoxMorse2变量名称不被认为是惯用的C#。 (正如StackOverflow上的语法高亮显示器所暗示的那样,它错误地将其强调为Type而不是变量。)C#约定优先选择变量名称不以大写字母开头。像这样:

tBoxMorse2
// or...
_TBoxMorse2

答案 1 :(得分:0)

只需拾取文本框中的文本,然后将新字符连接到文本。

TextBox2.text=TextBox2.text + dot.ToString();

答案 2 :(得分:-1)

char dot = "."不正确的是你如何声明/分配字符串
char dot = '.'或char dot = char(\ u点的unicode值