按钮单击以打开新表单,如果已经运行活动表单,则不打开

时间:2018-01-23 11:33:10

标签: c# wpf forms button click

我有一个按钮点击事件,会弹出一个表单。如何在创建现有表单并显示之前检查现有表单是否已存在?

这是我的代码

private void Button_Click(对象发送者,RoutedEventArgs e)         {

        Wizard wizard = new Wizard();

        if (wizard.IsVisible)
        {

        }
        else
        {
            wizard.Show();
        }
    }

此处的代码不起作用,因为每次我从另一个窗口单击按钮时都会创建一个新的弹出向导(窗体)。

1 个答案:

答案 0 :(得分:0)

使用ShowDialog并将其设为模态

或使用wizardbool标记的参考引用进行检查。确保您之后使用引用将其设置为null

bool isOpen;

...

public void click()
{     
    if (!isOpen)
    {
        // do something
        wizard = new Wizard();
        wizard.Closing += (sender, args) =>
                            {
                                isOpen = false;
                            };
        isOpen = true;
        wizard.Show();
    }
...

或者如评论中所述。将按钮Enabled属性设置为false以防止进一步命中

Enabled = false;