2010-08-07 112 views
3

嗨,大家好,following tutorial显示了如何从文本框中获取文本并在用户点击按钮时将其显示在文本块中。足够简单...但我想要做的是,而不是击中一个按钮,添加文本我想输入按钮来做到这一点。WP7让输入键将文本从文本框发送到文本块

在这里搜索,我发现下面的代码,但它似乎没有做任何事情。

private void textBox_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.Enter) 
     { 
      listBox.Items.Add(textBox.Text); 
     } 
    } 

因此,具有该字符串的文本框被称为文本框,我希望该文本框中的文本被添加到我的列表(listBox)中。当我点击输入按钮时,它什么都不做。任何帮助?

谢谢!

+0

尝试使用if语句在行中添加断点,debug,然后查看e.Key以查看正在注册的密钥。 – 2010-08-08 13:55:25

+0

是的,它永远不会被调用。我喜欢断点btw。有没有办法在wp7中调用键盘?我可以设置一个按钮,但按键盘按键怎么样?嗯,让我看看周围,断点建议让我走上正轨。 – Court 2010-08-08 14:27:47

回答

1

如果您尚未这样做,则需要将此事件处理程序连线到文本框KeyDown事件。您可以通过属性窗口中的事件选项卡来实现此功能,而文本框则是针对性的 - 或者您可以双击,VS将为您创建一个新的事件处理程序,您可以将上述代码放入。

+0

我的帖子中没有代码能做到吗?它也被钩入了xaml页面。 – Court 2010-08-08 08:39:46

+0

不只是添加方法。您需要使用我提到的技术之一将事件连接到方法。 – 2010-08-26 21:53:11

+0

+1从他的评论这似乎是这个答案,太糟糕了,他没有选择这个(或任何)作为答案 – 2011-08-10 06:58:59

6

您可以从屏幕键盘截取回车键,但不能从运行仿真器的PC的键盘截取。

下面是一些代码来证明它的工作原理:

创建一个新的手机应用程序。 下面的代码添加到内容电网

<ListBox Height="276" HorizontalAlignment="Left" Margin="14,84,0,0" Name="listBox1" VerticalAlignment="Top" Width="460" /> 

那么后面,添加以下内容:从你给@Trees答案

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Enter) 
    { 
     this.listBox1.Items.Add(textBox1.Text); 
    } 
} 
+0

-1:他说得很清楚,他点击输入键,所以他没有使用PC上的键盘。此外,您的代码与他所说的不起作用的代码完全相同 – 2011-08-10 06:55:56

0

@Court我可以假设你是不是真的,如果确定KeyDown已连线。你在XAML文件中有以下代码吗?

<TextBox Height="32" HorizontalAlignment="Left" Margin="13,-2,0,0" Name="textBox1" Text="" VerticalAlignment="Top" Width="433" KeyDown="textBox1_KeyDown" /> 

@马特莱西截取从PC的键盘输入也适用

0

看起来你需要处理KeyUp事件来代替。