【发布时间】:2013-07-24 14:07:35
【问题描述】:
我正在努力研究如何在表单之间传递值。我有四个表单,我想将Login 检索到的信息传递给第四个也是最后一个表单。
这是我目前所拥有的。
在这个函数中:
private void btnLogin_Click(object sender, EventArgs e)
我已经像这样反序列化了我想要的数据:
NewDataSet resultingMessage = (NewDataSet)serializer.Deserialize(rdr);
然后,当我调用下一个表单时,我已经这样做了:
Form myFrm = new frmVoiceOver(resultingMessage);
myFrm.Show();
然后,我的VoiceOver 表单如下所示:
public frmVoiceOver(NewDataSet loginData)
{
InitializeComponent();
}
private void btnVoiceOverNo_Click(object sender, EventArgs e)
{
this.Close();
Form myFrm = new frmClipInformation();
myFrm.Show();
}
当我调试时,我可以看到数据在第二种形式的loginData 中,但我似乎无法在btnVoiceOverNo_Click 事件中访问它。如何访问它以便将其传递给下一个表单?
【问题讨论】:
-
您需要将 loginData 传递给的 frmVoiceOver 的成员。类似_loginData = loginData,其中_loginData 存在于NewDataSet _loginData 等表单类中。
-
登录和表单是否属于同一个应用程序(exe)?如果是这样,则不需要序列化/反序列化:好的旧的普通属性就可以了。当登录将数据发送到表单时,“拉”逻辑(表单向登录询问信息)似乎比“推送”逻辑更好。