wpf предотвращает повторное нажатие кнопки - PullRequest
1 голос
/ 12 марта 2010

У меня снова проблема. когда я нажимаю кнопку, появляется окно. когда я нажимаю кнопку снова, то же самое окно появляется снова. Я хочу, когда я нажимаю кнопку первый раз, появляется страница. но я хочу предотвратить повторный щелчок. Может кто-нибудь помочь мне с этой проблемой? заранее спасибо.

private void Dictionary_Click(object sender, RoutedEventArgs e)
{
  Dictionary dic = new Dictionary();
  dic.Show();
  dic.Topmost = true;
}

1 Ответ

2 голосов
/ 12 марта 2010

установить простое логическое значение, чтобы проверить, открыто ли уже окно?

private bool isWindowAlreadyOpen = false;
private void Dictionary_Click(object sender, RoutedEventArgs e)
{
   if (!isWindowAlreadyOpen)
   {
       Dictionary dic = new Dictionary();
       dic.Show();
       dic.Topmost = true;
       isWindowAlreadyOpen = true;
   }
}

Должен сделать свое дело.

EDIT
Вам нужно зарегистрировать закрытое событие окна, чтобы сбросить логическое значение:

private bool isWindowAlreadyOpen = false;
private void Dictionary_Click(object sender, RoutedEventArgs e) 
{
    if (!isWindowAlreadyOpen) 
    {
        Dictionary dic = new Dictionary();
        dic.Show();
        dic.Topmost = true;
        dic.Closed += Dictionary_Closed;
        isWindowAlreadyOpen = true;
    }
}

private void Dictionary_Closed(object sender, EventArgs e)
{
    isWindowAlreadyOpen = false;
}

EDIT2
Кроме того, вы можете использовать dic.ShowDialog(), если хотите, чтобы это окно было самым верхним и содержало только один экземпляр.

...