解决方案 »

  1.   

    你的例子倒是不需要用事件。public partial class ChildForm : Form
    {
        public string Title { get; set; }    public ChildForm()
        {
            InitializeComponent();
        }    private void btn_Ok_Click(object sender, EventArgs e)
        {
            this.Title = "Login succeeded";  // 处理登录,并给结果
            this.Close();
        }
    }public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }    private void button1_Click(object sender, EventArgs e)
        {
            using (ChildForm childForm = new ChildForm())
            {
                childForm.ShowDialog(this);  // 调用childForm进行处理
                this.Text = childForm.Title;  // 使用childForm的处理结果
            }
        }
    }
      

  2.   

    gomoku你给的倒是比上面精简和易懂很多,我学到了,但是还有别的复杂一些的,要用到事件的话,是要向我上面那样写吗?还是有别的更好的办法
      

  3.   

    比如有窗体A,窗体B,窗体A先出现,上面有一些信息,处理完后点击一个按钮窗体B出现,这时窗体A中的一些信息要传递到窗体B,这个大概是怎么实现呢?
    可以用我上面说的事件,但是我觉得有点麻烦,不知道有没有更好的办法。
      

  4.   

    一般不建议把父窗体以参数的方式传给子窗体,这样两个窗体的耦合度太大。如果是childform.Show用事件比较好。如果是childForm.ShowDialog,可以点子窗体点按钮以后返回一个DialogResult和一个属性Title,父窗体判断DialogResult以后再去获取Title属性