【问题标题】:Button click to open new form and don't open if already have active form running按钮单击以打开新表单,如果已经有活动表单正在运行,则不要打开
【发布时间】:2018-07-02 05:08:30
【问题描述】:

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

这是我的代码

private void Button_Click(object sender, RoutedEventArgs e) {

        Wizard wizard = new Wizard();

        if (wizard.IsVisible)
        {

        }
        else
        {
            wizard.Show();
        }
    }

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

【问题讨论】:

标签: c# wpf forms button click


【解决方案1】:

使用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();
    }
...

或如 cmets 中所述。将按钮的 Enabled 属性设置为 false 以防止进一步点击

Enabled = false; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多