2010-03-11 8 views
1

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

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

ответ

2

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

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(), если вы хотите, чтобы это окно в быть самым верхним и только одним экземпляром.

+0

Я попробовал. оно работает. но когда я закрываю окно и хочу снова открыть, я не открываю. можете ли вы представить себе это? спасибо всем. – neki

+0

спасибо. это сработало. i новое в wpf и .net. еще раз спасибо. Хорошая работа. – neki

Смежные вопросы