【发布时间】:2010-10-19 17:50:02
【问题描述】:
我有一个选项卡控件和一些选项卡项。我正在成功收听SelectionChanged 事件,并检查我感兴趣的选项卡是否是当前选择的选项卡。
我正在使用这段代码(如下),并逐步通过调试器,我可以看到我的分支逻辑按设计工作;但是,我遇到的问题是某些东西覆盖了对 txt.Focus() 的调用,因为在显示正确的选项卡项后,焦点不在文本框上。
private void tabMain_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// exact same behavior with and without this line
e.Handled = true;
if (e.AddedItems.Contains(usrTab))
{
txtusr.Focus();
}
else if (e.AddedItems.Contains(svcTab))
{
txtsvc.Focus();
}
}
如果我只是将txtusr.Focus() 放在按钮事件处理程序中,它会完全按照我的预期聚焦。
我怀疑这与调用 .Focus() 方法时未加载 tabitem 内容有关,但我不确定如何修复它。
【问题讨论】:
-
您是否已将问题隔离到代码外部以查看它是否可重现?如果是这样,这是一个时间/框架问题,然后您可以利用掌握的知识以不同的方式解决问题。
-
我能够在存根程序中不一致地重现它。
标签: c# wpf focus tabs selectionchanged