目的:在子窗体1(childFrm1)中,点击datavie的某一行,将在子窗体2(childFrm2)中的textbox显示对应的详细信息。
问题:由于使用了dockpanel,所以childFrm1和childFrm2都不是MDIChild窗体,但是,两者都是主窗体Form1的dockpanel中显示。为了使两者建立联系,通过Form1建立关系,是不错的选择,所以,改写childFrm1的构造函数为:
Form1 here_f1;
public childFrm1(Form1 f1)
{
InitializeComponent();
here_f1 = f1;
}
这样,就可以在childFrm1中获取Form1的各个方法(而且不是创建新的实例),所以可以很好的实现通过Form1 的某个方法来实现childFrm1改变childFrm2中textbox内容的目的。
(需要注意的是,childFrm1中的相应控件,比如textbox,的modifier应为public)
**dockpanel中主窗体的MDIContainer为true,但是各个子窗体不可以设置其MDIParent,否则会出现错误。