2010-03-11 257 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