如何在表单之间交换数据

时间:2011-06-21 23:37:02

标签: c# winforms visual-studio-2010

  

可能重复:
  sharing data between forms

我有:

public partial class LoginForm : Form
{
    private string somedata = "somedata";

    public LoginForm()
    {
        InitializeComponent();
    }    
}

我希望LoginForm打开另一个表单并向其发送somedata。我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

您可以执行以下操作。它假设您已经创建了一个名为SomeForm的表单,并添加了一个接受字符串的构造函数。

    public partial class LoginForm : Form
    {
        private string somedata = "somedata";

        public LoginForm()
        {
            InitializeComponent();

            OpenForm(somedata);
        }    
    }

    private void OpenForm(string Data)
    {
        SomeForm sf = new SomeForm(Data);
        sf.Show();
    }

答案 1 :(得分:4)

首先在您希望从login:

传递数据的第二个表单上创建一个公共字符串
   public partial class Form2 : Form       
 {  

 public Form2()              
{  
InitializeComponent(); 
}  

    public string messagefromLogin;
    MessageBox.Show(messagefromLogin);

    }

然后登录:

 public partial class LoginForm : Form       
 {  

 public LoginForm()              
{  
InitializeComponent(); 
}   
private string somedata = "somedata";

//Show Form2 and pass the string "somedata"
 private void btnShowForm2_Click(object sender, EventArgs e)
        {
            var frm2 = new Form2{messagefromLogin=somedata}
frm2.Show();
        }

}

此致

答案 2 :(得分:2)

有很多方法,

将您父表单的引用传递给您的孩子,或者只是将数据传递给构造函数中的子表单或set属性。

protected void viewHelp(){
  var loginHelp = new LoginHelpForm();
  loginHelp.ParentForm = this;
  loginHelp.Show(); 
  this.Hide();
}