【问题标题】:Move the focus from a TextBox to another one when pressing the enter key of the soft keyboard按下软键盘的回车键时,将焦点从一个文本框移动到另一个文本框
【发布时间】:2012-09-04 16:58:54
【问题描述】:

我使用的是 Windows Phone。我想在您创建新事件时复制日历应用程序的行为。如果您触摸名称文本框,然后按软键盘的 Enter 键,应用程序会将焦点从该文本框移至下方。

我不知道如何在我自己的应用中做到这一点。

我猜我必须使用 IsTabStop + TabIndex 属性,也许还有 TabNavigation。

但如果我设置它们,它不会改变任何东西。

像这样:

<TextBox
  IsTabStop="True"
  TabIndex="1" />
<TextBox
  IsTabStop="True"
  TabIndex="2" />

这是一个简单的行为,我不明白为什么我无法单独弄清楚。

谢谢。

【问题讨论】:

  • 尝试功能焦点或选择切换到另一个文本框

标签: c# silverlight windows-phone-7


【解决方案1】:

KeyDown 事件用于textBox1。并检查if (e.Key == Key.Enter || e.PlatformKeyCode == 0x0A) 并将焦点更改为textBox2.Focus() 的另一个文本框

【讨论】:

    【解决方案2】:

    我看到了两种可能的方法。

    在第一种情况下,您知道之前和之后的字段,因此您可以对行为进行硬编码。 当用户在 textbox1 上按“Enter”时,您会关注 textbox2,依此类推。

    编辑:这正是@milan-aggarwal 所说的

    第二个也是更通用的想法是使用 VisualTreeHelper (http://msdn.microsoft.com/fr-fr/library/system.windows.media.visualtreehelper.aspx)。

    当用户按下“Enter”(这很容易检测到)时,您可以使用 VisualTreeHelper 查看 englobing 面板的子项,以便选择和聚焦下一个文本框(或其他类型的 UI 组件)。

    我不知道是否有本地解决方案可以做同样的事情。

    【讨论】:

    • 遗憾的是没有内置的东西可以做到这一点。这是移动应用程序的常见行为。
    • “搜索”InputScope 提供了漂亮的白色大输入按钮,这使得行为更加明显。缺点是你失去了自动更正。
    • 有没有人制作了一个助手附件或其他东西来做这个?我可以把东西放在一个容器上,然后说,处理任何输入事件并做它,类似于倾斜效果(选择退出)。
    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多