2010-03-11 258 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; 
    } 
} 

應該這樣做。

編輯
你必須註冊窗口的關閉事件來取消布爾:

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 2010-03-12 07:24:28

+0

非常感謝。有效。我是一個新的WPF和.NET。再次感謝你。幹得好。 – neki 2010-03-12 09:44:18