我在OnNavigatedTo()事件的页面中得到了这段代码:
if (string.IsNullOrWhiteSpace(textBoxGroupName.Text))
{
textBoxGroupName.Focus(FocusState.Programmatic);
}
...但是当页面显示时,textBoxGroupName没有焦点。为什么不呢?
答案 0 :(得分:4)
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">
答案 1 :(得分:2)
只能选择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);
}