wpf阻止第二次单击按钮

时间:2010-03-11 22:06:57

标签: wpf wpf-controls

我又遇到了问题。当我点击按钮时,会出现窗口。当我再次点击按钮时,同样的窗口再次出现。我想在第一次点击按钮时出现页面。 但我希望阻止第二次点击。任何人都可以帮我解决这个问题吗?提前谢谢。

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

1 个答案:

答案 0 :(得分: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()