MDI父窗体如何调用子窗体里面的控件,以实现父窗体菜单复制,粘贴等对子窗体中的文本框进行操作的功能

解决方案 »

  1.   

    支持楼上,将子窗体的控件 Modifiers 这个属性改为 public ,或者将整个子窗体类都改为public,方法很多,我最近看了,有事件传递,还有静态字段传递…还有就是上面说的改属性。 给个参考//写在父窗体里面的代码(子窗体有个关闭的代码就可以了)
                this.IsMdiContainer = true;//指示窗体为多文档界面
                Form2 f2 = new Form2();
                f2.MdiParent = this;
                f2.Show();
                this.textBox1.Text = f2.textBox1.Text.Trim(); //要实现这个的调用,
                           //要修改 Form2(子窗体) 中 textBox1 的 Modifiers 这个属性为 public 
                // f2.textBox1.Text="关闭当前窗体,要传到福窗体上面的值";
      

  2.   

    1主窗体的代码: namespace MyFirstApp 

        public partial class Frm_main : Form 
        { 
            public Frm_main() 
            { 
                InitializeComponent(); 
            }         public void DiaoYong(string str) 
            { 
                this.textBox1.Text = str; 
            } 
            private void button1_Click(object sender, EventArgs e) 
            { 
                string str = this.textBox1.Text; 
                Frm_child f2 = new Frm_child(str);//在构造函数中,向子窗体传值。 
                f2.Owner = this; 
                f2.Show();         } 
        } 
    } 2,子窗体的代码 namespace MyFirstApp 

        public partial class Frm_child : Form 
        { 
            public Frm_child(string ss) 
            { 
                InitializeComponent(); 
                this.textBox1.Text = ss; 
            }         private void button1_Click(object sender, EventArgs e) 
            { 
                string st = textBox1.Text;             Frm_main f1; 
                f1 = (Frm_main)this.Owner; 
                f1.DiaoYong(st); 
                this.Close();         } 
        } 
    }
      

  3.   


     public partial class Form1 : Form
        {        public Form1() //父窗体
            {
                InitializeComponent();        }        Form2 f2;//声明一个窗体(子窗体)        private void button1_Click(object sender, EventArgs e) 
            {
                this.IsMdiContainer = true;//指示窗体为多文档界面
                f2 = new Form2();
                f2.MdiParent = this; //指示父窗体
                f2.Show();            f2.Closing += new System.ComponentModel.CancelEventHandler(f2_Closing);//调用自己编写的关闭事件
            }
            //编写一个值传递事件(窗体关闭时实行传递)
            private void f2_Closing(object sender, CancelEventArgs e)
            {
                this.textBox1.Text = f2.textBox1.Text.Trim();//把子窗体的值赋给父窗体        }
                }
       //和我上面的三楼基本一样的(这些方法可提供窗体与窗体之间实行传递)
      

  4.   

    子窗体调用时用:((主窗口)this.MdiParent).***