Windows mobile 当用户点击控件外部时,如何隐藏控件
在windows mobile应用程序中,我们将用户控件用作屏幕菜单。 单击用于打开菜单的同一按钮可关闭此功能。 作为一项改进,我们希望在用户在控件外单击时随时关闭菜单 目前,我们已经尝试触发“lostFocus”事件,并在每次显示菜单时使用menu.Focus()。问题是调用menu.Focus()时会立即触发lostFocus事件 有没有办法阻止焦点直接丢失? 或Windows mobile 当用户点击控件外部时,如何隐藏控件,windows-mobile,Windows Mobile,在windows mobile应用程序中,我们将用户控件用作屏幕菜单。 单击用于打开菜单的同一按钮可关闭此功能。 作为一项改进,我们希望在用户在控件外单击时随时关闭菜单 目前,我们已经尝试触发“lostFocus”事件,并在每次显示菜单时使用menu.Focus()。问题是调用menu.Focus()时会立即触发lostFocus事件 有没有办法阻止焦点直接丢失? 或 有没有办法做到这一点?只是一个想法:添加2个布尔值: bool userControlFocused; bool menuFoc
有没有办法做到这一点?只是一个想法:添加2个
布尔值:
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();
}
}
这里只是随便说说一些想法。只是一个想法:添加2个布尔值:
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();
}
}
这里,我只是随便说说一些想法。那么,当您选择一个菜单时,Focus()调用会导致lastFocus()被调用吗?有点奇怪,不是吗?是的,首先触发GotFocus事件,LostFocus事件。所以当您选择菜单时,Focus()调用会导致调用lastFocus()?有点奇怪,不是吗?是的,首先触发GotFocus事件,LostFocus事件。