1

ここでは、Windowsモバイルアプリケーションの画面メニューとしてUserControlを使用しています。これは、メニューを開くために使用されるのと同じボタンをクリックすることによって閉じられます。改善点として、ユーザーがコントロールの外側をクリックするたびにメニューを閉じたいと思います。

現在、「lostFocus」イベントをトリガーし、メニューが表示されるたびにmenu.Focus()を使用してみました。問題は、menu.Focus()が呼び出されると、lostFocus-eventがすぐに発生することです。

焦点が直接失われるのを妨げる方法はありますか?またはこれを達成する方法はありますか?

4

1 に答える 1

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

ここでいくつかのアイデアを投げかけます。

于 2012-04-28T01:20:57.880 に答える