当按下软键盘的回车键时,将焦点从一个文本框移动到另一个文本框。

3
我使用的是Windows Phone系统。我想模仿日历应用程序的行为来创建一个新事件。如果您触摸名称文本框并按下软键盘的回车键,则应用程序将焦点从此文本框移动到其下方的文本框。
但我不知道如何在自己的应用程序中实现这一功能。我猜想要使用IsTabStop+TabIndex属性和TabNavigation,但是如果我设置它们,什么也没改变。
就像这样:
<TextBox
  IsTabStop="True"
  TabIndex="1" />
<TextBox
  IsTabStop="True"
  TabIndex="2" />

这是一个简单的行为,我不明白为什么我不能独自理解它。

谢谢。


尝试使用focus或select函数切换到另一个文本框。 - lorenz albert
2个回答

5

使用 KeyDown 事件处理 textBox1。检查 if (e.Key == Key.Enter || e.PlatformKeyCode == 0x0A) 并通过 textBox2.Focus() 将焦点改变到另一个文本框。


4
我看到两种可能的方法来实现这个。
第一种情况,你知道前后出现的字段,所以可以硬编码行为。当用户在textbox1上按“Enter”键时,你会将焦点放在textbox2上,以此类推。
编辑:这正是@milan-aggarwal所说的。
第二个更通用的想法是使用VisualTreeHelper(http://msdn.microsoft.com/fr-fr/library/system.windows.media.visualtreehelper.aspx)。
当用户按“Enter”键(很容易检测到)时,使用VisualTreeHelper查看包含面板的子项以选择和聚焦下一个Textbox(或其他类型的UI组件)。
我不知道是否有本地解决方案来做同样的事情。

1
很遗憾,没有内置的功能可以做到这一点。这是一个移动应用程序所期望的常见行为。 - Matthieu Oger
“Search” 的 InputScope 可以给予一个漂亮的大白色回车按钮,这使得行为方式更加明显。缺点是你失去了自动纠正功能。 - Michael Itzoe
有人制作了帮助附件或类似的东西来完成这个任务吗?我能够将其放在一个容器上并说:“处理任何输入事件并只是这样做”,类似于倾斜效果(可选择退出)。 - kamranicus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接