我正在开发一个 windows mobile 6.5 应用程序,当关注添加到表单的 UserControl 的子控件时,我的表单失去焦点的问题......有时。
在我的应用程序中,我通过向主表单控件集合添加和删除用户控件来在屏幕之间导航。
IView nextView = (IView)Activator.CreateInstance(map.View);
this.Controls.Remove((UserControl)this.currentView);
this.currentView = nextView;
this.Controls.Add((UserControl)this.currentView);
因此,我在屏幕之间导航的基本流程是:
首先添加 UserControl A
- 初始化用户控件 A
- 将 UserControl A 添加到 Form.Controls
- 专注于 A 上的网格
导航到用户控件 B
- 初始化用户控件 B
- 从 Form.Controls 中删除 UserControl A
- 将 UserControl B 添加到 Form.Controls
导航回 UserControl A
- 初始化用户控件 A
- 从 Form.Controls 中删除 UserControl B
- 将 UserControl A 添加到 Form.Controls
- 专注于 A 上的网格
所有这些都可以正常工作,并且在第一次添加 UserControl A 时,表单具有焦点,子控件也具有焦点。
但是,当我从 UserControl B 导航回 UserControl A 时,表单会失去焦点,但前提是我尝试在最后一步中将注意力集中在子控件上。在我的应用程序中,这导致我无法使用手机硬件按钮在网格中导航。
关于为什么主要形式失去焦点的任何想法?