我们在Windows Mobile应用程序中使用UserControl作为屏幕菜单。 单击用于打开菜单的相同按钮即可关闭此功能。 作为改进,我们希望在用户点击控件外的任何时候关闭菜单。
目前我们尝试过触发“lostFocus”事件并在每次显示菜单时使用menu.Focus()。问题是当调用menu.Focus()时会立即触发lostFocus事件。
有没有办法阻止焦点直接丢失? 要么 有没有办法实现这个目标?
答案 0 :(得分:1)
只是一个想法:添加2个Boolean
值:
bool userControlFocused;
bool menuFocused;
当您的LostFocus
事件触发时:
private void UserControl1_LoseFocus(object sender, EventArgs e) {
userControlFocused = UserControl1.Focused;
if (!userControlFocused && !menuFocused) {
Close();
}
}
private void Menu_LostFocus(object sender, EventArgs e) {
menuFocused = Menu1.Focused;
if (!userControlFocused && !menuFocused) {
Close();
}
}
在这里抛出一些想法。