通常打开一个新的窗口,如果只需要传递简单的OK或者CANCEL之类的消息到父窗体,可以使用DialogResult 来保存用户选择的结果
如果需要在窗体之间实时交换数据,那么最好在构造窗体时把封装的数据类或者存贮数据的那个窗体类传递给新窗体,可以传递对窗体的引用或者直接使用this。
public partial class Form_scene : Form
{
public Form_scene()
{
InitializeComponent();
}
Form1 formparent;
public Form_scene(Form1 formparent)
{
this.formparent = formparent;
InitializeComponent();
}
...
}
这样你在构造新的窗体Form_scene的时候,就可以使用重载的构造函数
Form_scene form_scene = new Form_scene(this);
当有大量的窗体需要传递数据时,最好的办法就是把这些数据尽量封装到一个单独的类里面,然后把对这个类的引用
传递给各窗体。
你也可以给窗体设置一个属性(比如像ParentForm),将其置为null,在需要的时候就给它赋以引用。
有时候你不希望用户同时打开同一个窗体的实例,最好的办法就是在实例化新的窗体时先检查一下窗体的实例是否已经存在。