关于c#winform中两个窗体之间的传值的问题

两个窗体 form1,form2 1为登录 2为注册 我在form2中设置
public string 用户名;,public string 注册密码;
在form1中定义string w=this.textbox.text(form1的用户名输入),
string h=this.textbox2.text(密码输入),然后new, form2 a=new form2(); 然后用if验证登录 if(a.用户名==w && a.注册密码==h)
我感觉这段传值应该没问题呀vs也没报错 但是就是传不过来 但是我换成静态字段就可以了 我想请教各位大神 是我的代码有问题还是说公共非静态字段传值需要更新或者其他啥的

感谢

http://bbs.csdn.net/topics/360140208

    登录窗口
            /// <summary>
    /// 注册
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnRegister_Click(object sender, EventArgs e)
    {
        try
        {
            FrmRegister frm = new FrmRegister();
            if (frm.ShowDialog() == DialogResult.OK)
            {
                this.txtUserAccount.Text = frm._account;
                this.txtUserPwd.Text = frm._Pwd;
                frm.Dispose();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }



            注册窗口
            public string _account = "";
    public string _Pwd = "";
    /// <summary>
    /// 注册
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnOk_Click(object sender, EventArgs e)
    {
        try
        {
            if (string.IsNullOrEmpty(txtUserAccount.Text))
            {
                MessageBox.Show("请输入帐号!");
                txtUserAccount.Focus();
                return;
            }
            if (string.IsNullOrEmpty(txtPwd.Text))
            {
                MessageBox.Show("请输入密码!");
                txtUserAccount.Focus();
                return;
            }
            this._account = txtUserAccount.Text;
            this._Pwd = txtPwd.Text;
            this.DialogResult = DialogResult.OK;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

    }