按钮单击以打开新表单,如果已经有活动表单正在运行,则不要打开
Posted
技术标签:
【中文标题】按钮单击以打开新表单,如果已经有活动表单正在运行,则不要打开【英文标题】: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();
这里的代码不起作用,因为每次我从另一个窗口单击按钮时都会创建一个新的弹出向导(表单)。
【问题讨论】:
近乎重复:***.com/questions/3861602/… 在显示表单时禁用按钮并在关闭表单时重新启用它会更加用户友好。 【参考方案1】:使用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();
...
或如 cmets 中所述。将按钮的 Enabled 属性设置为 false 以防止进一步点击
Enabled = false;
【讨论】:
以上是关于按钮单击以打开新表单,如果已经有活动表单正在运行,则不要打开的主要内容,如果未能解决你的问题,请参考以下文章