当用户点击控件时,如何隐藏控件

时间:2012-04-27 13:04:13

标签: windows-mobile

我们在Windows Mobile应用程序中使用UserControl作为屏幕菜单。 单击用于打开菜单的相同按钮即可关闭此功能。 作为改进,我们希望在用户点击控件外的任何时候关闭菜单。

目前我们尝试过触发“lostFocus”事件并在每次显示菜单时使用menu.Focus()。问题是当调用menu.Focus()时会立即触发lostFocus事件。

有没有办法阻止焦点直接丢失? 要么 有没有办法实现这个目标?

1 个答案:

答案 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();
  }
}

在这里抛出一些想法。