C#: .ShowDialog Convention

本文关键字:Convention ShowDialog | 更新日期: 2023-09-27 18:22:12

设计新表单的推荐方法是什么?

我应该打new MyForm().ShowDialog()

还是将ShowDialog()作为构造函数?

MyForm(){
   ...
   this.ShowDialog();
}

C#: .ShowDialog Convention

当您希望显示表单时,显式调用ShowDialog()

我从未见过第二个惯例被使用过。这可能也会引起问题,因为您不会期望调用类的构造函数在屏幕上显示模式对话框。此外,如果您需要在表单上设置任何状态,但由于任何原因无法在构造函数中进行设置,那么在表单正确初始化之前,您最终会显示对话框。

此外,从构造函数调用ShowDialog()意味着您无法在触发要显示的对话框的代码中获得DialogResult返回值,这意味着您无法判断用户是否选择了ok/cancel/yes/no/etc。。。