winform 页面A 打开并传值给 页面B,页面B执行完成后,关闭,并同时将某值传回页面A,并要触发页面A中的某些事件。请问,如何实现这种情况呢?

解决方案 »

  1.   

    Form :-)
                FormB b = new FormB();
                b.SomeProperty = "some value";        //传值给 页面B
                b.ShowDialog();                       //打开
                string result = b.SomeResult;         //将某值传回页面A
                RunSomeMethod(result);                //触发页面A中的某些事件
      

  2.   

    B:
      private string str = "";        public string Str
            {
                get { return str; }
                set { str = value; }
            }        private void button1_Click(object sender, EventArgs e)
            {
                str ="Hello,"+str;
                this.DialogResult = DialogResult.OK;//关闭B
            }A:
     string strReturn = "";        private void button2_Click(object sender, EventArgs e)
            {
                MessageBox.Show(strReturn);
            }        private void button1_Click(object sender, EventArgs e)
            {
                Form3 frm = new Form3();
                frm.Str = "123";
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    strReturn = frm.Str;
                    button2_Click(null, null);//调用button2_Click事件
                }
            }
      

  3.   

    参考这里的文章代码,关于数据传递和事件注册
    ---------------------------------
    谈基于.net平台windows开发中的模式窗体
    http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx
    在.net应用程序中使用用户控件
    http://blog.csdn.net/zhzuo/archive/2004/11/30/199599.aspx
      

  4.   

    窗体间的值传递,不用事件,可以看看我的博客
    http://www.cnblogs.com/virusswb/archive/2008/03/31/1131276.html