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



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

这是我的代码

private void Button_Click(Object sender, RoutedEventArgs e( {

        Wizard wizard = new Wizard();
        if (wizard.IsVisible)
        {
        }
        else
        {
            wizard.Show();
        }
    }

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

要么使用 ShowDialog 并使其成为模态

或者使用对wizard的引用引用或bool标志进行检查。确保之后使用引用来设置它null

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

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

Enabled = false; 

最新更新