2012-04-27 15 views
1

在我們正在使用UserControl作爲我們的Windows Mobile應用程序的屏幕菜單。 點擊用於打開菜單的相同按鈕,即可關閉該功能。 作爲一項改進,我們希望在用戶點擊控制之外時關閉菜單。如何隱藏控件當用戶點擊它

目前我們已經通過觸發「lostFocus」事件並每次顯示菜單時使用menu.Focus()來嘗試。問題是,當menu.Focus()被調用時,lostFocus事件立即被觸發。

有什麼辦法可以阻止焦點直接丟失嗎? 或 有什麼辦法可以達到這個目的嗎?

+0

所以當你選擇一個菜單時,Focus()調用會導致lastFocus()被調用?有點奇怪,不是嗎? – 2012-04-27 13:32:50

+0

是的,首先觸發GotFocus事件,即LostFocus事件。 – 2012-04-27 13:58:58

回答

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

就扔周圍的一些想法,在這裏。

相關問題