我创造了C#2008一个Windows应用程序,将有大约8-10对话框。我希望这些表格在整个项目的整个过程中都存在。哪里是创建和存储对象的最佳地点?最好的地方对象
我来自Delphi,其中Form对象通常存储在全局变量中。
我很想在静态的Program类中做到这一点。我应该把它们放在主窗体中吗?
谢谢你帮助一个C#福利局出来。
我创造了C#2008一个Windows应用程序,将有大约8-10对话框。我希望这些表格在整个项目的整个过程中都存在。哪里是创建和存储对象的最佳地点?最好的地方对象
我来自Delphi,其中Form对象通常存储在全局变量中。
我很想在静态的Program类中做到这一点。我应该把它们放在主窗体中吗?
谢谢你帮助一个C#福利局出来。
一般来说,没有理由存储重用对话框。典型的情况是:
using(MyDialog dlg = new MyDialog()) {
dlg.MyTextProperty = "Are you realy sure, you want do XY operation?";
dlg.MyNumberProperty = 15;
DialogResult rslt = dlg.ShowDialog(this); // the "this" is current form or control
if (rslt == DialogResult.OK) {
object userInput = dlg.UserInput;
// do what you want with user input
}
}
为什么你希望这些对话框在程序的整个生命周期中都存在? 一般,在需要他们的时候,习惯,然后被销毁创建对话框。如果您需要再次显示,请创建一个新的并使用它。
如果你有一个合理的理由让他们周围,那很好,但不要使用Program
类。我假设你的应用程序有一个主要的形式,所有其他人都可以从中启动。如果是这种情况,请将它们变为该表单上的实例变量并从那里使用它们。
表格是昂贵的对象,它们有很多内部状态。如果创建数据很昂贵,缓存就很有意义。表单行为完全相反,创建他们的数据很便宜。 Windows将数据换出到页面文件后,使用缓存数据变得非常昂贵。这很可能发生在你的案例中,对话不会很频繁地使用。它其实需要更长向显示对话框。
如果您的数据填写对话框的开销很大,那么缓存该数据,而不是表单。
谢谢你的提醒,大家好。我将根据需要创建表单,而不是事先创建它们。 德尔福其中默认行为的形式自动在应用statup创建再来。 再次感谢。 – 2010-05-13 15:25:34