我在页面 OnNavigatedTo() 事件中有此代码:
if (string.IsNullOrWhiteSpace(textBoxGroupName.Text))
{
textBoxGroupName.Focus(FocusState.Programmatic);
}
...但是当页面显示时 textBoxGroupName 没有焦点。为什么不?
我在页面 OnNavigatedTo() 事件中有此代码:
if (string.IsNullOrWhiteSpace(textBoxGroupName.Text))
{
textBoxGroupName.Focus(FocusState.Programmatic);
}
...但是当页面显示时 textBoxGroupName 没有焦点。为什么不?
OnNavigatedTo
发生在页面生命周期的早期,以便将焦点设置为工作。Loaded
您应该在事件中调用您的代码:
private void MainPage_OnLoaded(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(textBoxGroupName.Text))
{
textBoxGroupName.Focus(FocusState.Programmatic);
}
}
当然,您需要在.xaml
文件中设置处理程序(我省略了Page
元素中的其他属性:
<Page
Loaded="MainPage_OnLoaded">
只有 GroupBox 控件中包含的控件可以被选择或接收焦点。好像您没有正确使用 GroupBox。
无法选择完整的 GroupBox 本身或接收焦点。有关此控件如何响应 Focus 和 Select 方法的详细信息,请参阅以下控件成员:CanFocus、CanSelect、Focused、ContainsFocus、Focus、Select。
您可能想使用Controls属性来访问子控件:
if (string.IsNullOrWhiteSpace(textBoxGroupName.Text))
{
var child_TextBox = textBoxGroupName.Controls["myTextBox"]
if(child_TextBox.CanFocus)
child_TextBox.Focus(FocusState.Programmatic);
}