【问题标题】:wpf prevent second click buttonwpf防止第二次点击按钮
【发布时间】:2010-03-12 17:22:33
【问题描述】:

我又有问题了。当我单击按钮时,会出现窗口。当我再次单击按钮时,再次出现相同的窗口。我想当我第一次点击按钮时,页面出现。 但我想防止第二次点击。谁能帮我解决这个问题?提前致谢。

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

【问题讨论】:

    标签: wpf wpf-controls


    【解决方案1】:

    设置一个简单的布尔值来检查窗口是否已经打开?

    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()

    【讨论】:

    • 我试过了。有用。但是当我关闭窗户并想再次打开时,我没有打开。你能知道吗?谢谢大家。
    • 非常感谢。有效。我是 wpf 和 .net 的新成员。再次感谢你。干得好。
    猜你喜欢
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2018-03-26
    • 2015-09-05
    • 1970-01-01
    相关资源
    最近更新 更多