winforms 使用按钮A打开主窗体A,然后禁用按钮A直到窗体A关闭,对B执行相同操作

e5nqia27  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(144)

在我的Visual Studio项目档中:<TargetFramework>net6.0-windows</TargetFramework>
我有一个Winforms应用程序,它的主窗体有两个按钮,按钮A和按钮B。
我已经编写了按钮A的代码,这样当单击按钮A时,它会禁用自己,启动窗体A,当窗体A关闭时,控制返回到按钮单击事件,按钮A在该事件中重新启用:

btnA.Enabled = false;            
            FormA frmA = new FormA();
            btnA.Enabled = frmA.ShowDialog(this) == DialogResult.OK;

但是,在frmA关闭之前,用户无法在主窗体上执行任何操作。
当单击按钮A时,我仍然希望禁用按钮A,以便用户无法打开另一个窗体A。但是,我还希望用户能够单击主窗体上的按钮B,并使该逻辑以相同的方式工作:禁用按钮B,启动表单B,重新启用按钮B。
我尝试做的是给予用户能够从主窗体启动一个窗体A和一个窗体B。我可以用我描述的模式来实现吗?如果可以,如何实现?(注意:以后可能会有按钮C和D。)我很乐意考虑一种不同/更好的方法。谢谢海吉。

xmq68pz9

xmq68pz91#

我使用Show()找到了一个SO解决方案,并捕获了Form A上的close事件:
WinForms; detecting form closed from another form
根本不涉及太多的编码。

相关问题