先打开form1,点击按钮显示form2,两个窗体中都含有textEdit,在form中输入文本时,要求在form1的textEdit中同时更新,怎么实现呀,我在form1中做了一个事件处理,但怎么也触发不了这个事件
form1
 public test()
        {
            InitializeComponent();
        }
        private string _text = string.Empty;
        public string TextS
        {
            get { return this._text; }
            set
            {
                this._text = value;
                if (_text != null)
                {
                    this.OnChanged(new EventArgs());
                    this.Changed += new ChangedEventHandler(test_Changed);
                }
                else
                    _text = form2.Textstring;
            }
        }
        public delegate void ChangedEventHandler(object sender, EventArgs e);        //定义一个委托类型事件
        public event ChangedEventHandler Changed;
        //用于触发Changed事件
        protected void OnChanged(EventArgs e)
        {
            if (this.Changed != null)
            {
                this.Changed(this, e);
            }
        }
        void test_Changed(object sender, EventArgs e)
        {
            this.textEdit1.Text = _text;
        }
        
        test2 form2 = new test2();
        private void simpleButton1_Click(object sender, EventArgs e)
        {
           
           form2.ShowDialog();  
        }              form2
 public test2()
        {
            InitializeComponent();
        }
        string textstr="";
        public string Textstring
        {
            set { textstr = value; }
            get { return textstr; }
        }
        private void textEdit1_EditValueChanged(object sender, EventArgs e)
        {
            textstr = this.textEdit1.Text;        }

解决方案 »

  1.   

    把form1的textbox改成public,然后就可以在form2中直接复制了不过你需要在form2中设立一个form1的引用        private void textEdit1_EditValueChanged(object sender, EventArgs e)
            {
                form1.textEdit1.Text = this.textEdit1.Text;        }
      

  2.   

    public test()
            {
                InitializeComponent();
            }
    public TextBox tb
    {
      get 
       {
         return textEdit;
       }
    }
         
            test2 form2 = new test2(this);
            private void simpleButton1_Click(object sender, EventArgs e)
            {
               
               form2.ShowDialog();  
            }
    //form2
    test1 form1;
    public test2(test1 fm)
            {
               form1=fm;
                InitializeComponent();
            }         private void textEdit1_EditValueChanged(object sender, EventArgs e)
            {
                form1.tb.Text= this.textEdit1.Text;        }