问题描述:我现在用C#写了一个程序是这个样子的,在一个Dialog上面进行分栏显示图片,为了能让父窗口简洁一点,我现在想让父窗口仅仅显示图片,在父窗口上面有个按钮,按一下那个按钮会弹出一个子窗口,在子窗口上面进行控制主窗体的分栏操作,但是我现在遇到一个问题就是在子窗口上应该如何去控制主窗口呢?
还有就是该如何去调用主窗口中定义的方法呢?

解决方案 »

  1.   

    很简单呀。你把父窗口对象 传过去就行。
    如父窗口名为frmMain.cs
    子窗口名为frmChild.cs//frmMain.cs
    //父窗体中弹出子窗体的方法
    private void ShowChild()
    {
        frmChild frm = new frmChild(this);//为子窗体加一个带参构造函数
        frm.ShowDialog();
    }
    public void Test(){}//测试公共方法//frmChild.cs
    //子窗口的方法中调用
    //带参构造函数
    private frmMain _frmMain=null;
    public frmChild(frmMain objMain)
    {
          this._frmMain=objMain;
          //......其它代码    
    }
    //调用frmMain里的方法
    private void TestInvok()
    {
         //......其它代码
         frmMain.Test();
    }
      

  2.   

    js脚本:window.showModalDialog( url, window ); 然后在弹出的子窗口中: window.dialogArguments 即为父窗口window对象的引用