【问题标题】:How can I exchange data between forms [duplicate]如何在表单之间交换数据[重复]
【发布时间】:2011-06-21 23:37:02
【问题描述】:
可能重复:
sharing data between forms
我有:
public partial class LoginForm : Form
{
private string somedata = "somedata";
public LoginForm()
{
InitializeComponent();
}
}
我希望 LoginForm 打开另一个表单并将somedata 发送给它。我该怎么做?
【问题讨论】:
标签:
c#
winforms
visual-studio-2010
【解决方案1】:
您可以执行以下操作。它假定您已经创建了一个名为 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();
}
【解决方案2】:
首先在您要传递登录数据的第二个表单上创建一个公共字符串:
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();
}
}
问候
【解决方案3】:
有很多方法,
将父表单的引用传递给您的子表单,或者只是将数据传递给构造函数中的子表单或设置属性。
protected void viewHelp(){
var loginHelp = new LoginHelpForm();
loginHelp.ParentForm = this;
loginHelp.Show();
this.Hide();
}