按下软键盘的回车键时,将焦点从TextBox移动到另一个

时间:2012-09-04 08:48:55

标签: c# silverlight windows-phone-7

我在Windows Phone上。我想在创建新事件时复制日历应用程序的行为。如果您触摸名称文本框,然后按下软键盘的回车键,应用程序会将焦点从此文本框移动到下方的那个。

我不知道如何在我自己的应用程序中这样做。

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

但如果我设置它们,它什么都不会改变。

就像那样:

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

这是一个简单的行为,我无法理解为什么我无法弄清楚这一点。

感谢。

2 个答案:

答案 0 :(得分:5)

KeyDown使用textBox1事件。并检查if (e.Key == Key.Enter || e.PlatformKeyCode == 0x0A)并按textBox2.Focus()

将焦点更改为另一个文本框

答案 1 :(得分:4)

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

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

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

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

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

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