Har*_*rry 7 c# windows-phone-8
TextBox当用户触摸Enter虚拟键时,如何使其失去焦点并隐藏屏幕键盘?
private void TheName_KeyDown(object sender, KeyRoutedEventArgs e) {
var tb = sender as TextBox;
if (e.Key == Windows.System.VirtualKey.Enter) {
// ... tb.LooseTheFocus_PLEASE(); !???
}
}
Run Code Online (Sandbox Code Playgroud)
Har*_*rry 16
/// <summary>
/// Makes virtual keyboard disappear
/// </summary>
/// <param name="sender"></param>
private void LoseFocus(object sender) {
var control = sender as Control;
var isTabStop = control.IsTabStop;
control.IsTabStop = false;
control.IsEnabled = false;
control.IsEnabled = true;
control.IsTabStop = isTabStop;
}
/// <summary>
/// Makes virtual keyboard disappear when user taps enter key
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void LooseFocusOnEnter(object sender, KeyRoutedEventArgs e) {
if (e.Key == Windows.System.VirtualKey.Enter) {
e.Handled = true; LoseFocus(sender);
}
}
Run Code Online (Sandbox Code Playgroud)
它很丑.但它的确有效.关键部分是IsTabStop属性.如果我不接触它 - 键盘会在几分之一秒内耗尽并再次重新开始.
只需将焦点设置到页面即可.
this.Focus();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15945 次 |
| 最近记录: |