【问题标题】:WP7 Have the enter key send text from textbox to a textblockWP7 让回车键将文本从文本框发送到文本块
【发布时间】:2010-08-07 21:50:38
【问题描述】:

following tutorial 展示了如何在用户点击按钮时从文本框中获取文本并将其显示在文本块中。很简单......但我想要做的是而不是点击一个添加文本的按钮,我希望输入按钮来做到这一点。

在这里搜索,我找到了以下代码,但它似乎没有做任何事情。

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

因此,包含该字符串的文本框称为文本框,我希望将该文本框中的文本添加到我的列表 (listBox) 中。当我单击输入按钮时,它什么也不做。有什么帮助吗?

【问题讨论】:

  • 尝试在 if 语句所在行添加断点,调试,然后查看 e.Key 以查看正在注册的密钥。
  • 是的,它永远不会被调用。顺便说一句,我喜欢断点。 wp7中有什么方法可以调用键盘吗?我可以为按钮按下设置一个偶数,但是键盘按下呢?嗯,让我环顾四周,断点建议让我走上了正轨。

标签: c# silverlight listbox keyboard windows-phone-7


【解决方案1】:

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

这里有一些代码可以证明它有效:

创建一个新的电话应用程序。 将以下内容添加到内容网格中

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

然后在后面的代码中,添加以下内容:

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

【讨论】:

  • -1:他说得很清楚,他正在单击回车键,所以他没有使用 PC 上的键盘。此外,您的代码与他所说的代码完全相同
【解决方案2】:

如果您还没有这样做,则需要将此事件处理程序连接到文本框的 KeyDown 事件。您可以通过属性窗口中的“事件”选项卡来执行此操作,而文本框是目标 - 或者您可以双击那里,VS 将为您创建一个新的事件处理程序,您可以将上述代码放入其中。

【讨论】:

  • 我的帖子中的代码不会这样做吗?它也与 xaml 页面挂钩。
  • 不仅仅是添加方法。您需要使用我提到的一种技术将事件连接到方法。
  • +1 from his cmets 这似乎是答案,可惜他没有选择这个(或任何)作为答案
【解决方案3】:

@Court 从您给@Trees 的答案中我可以假设您不确定KeyDown 是否已连接。 XAML 文件中是否有以下代码?

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

@Matt Lacey 从 PC 键盘截取 Enter 也可以

【讨论】:

    【解决方案4】:

    看起来您需要处理 KeyUp 事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 2013-12-12
      • 1970-01-01
      • 2012-08-29
      相关资源
      最近更新 更多