我正在努力研究如何在表单之间传递值.我有四种形式,我想将由Login第四和最终形式检索到的信息传递给我.
这就是我到目前为止所拥有的.
在这个功能:
private void btnLogin_Click(object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)
我已经反序列化了我想要的数据:
NewDataSet resultingMessage = (NewDataSet)serializer.Deserialize(rdr);
Run Code Online (Sandbox Code Playgroud)
然后,当我打电话给下一个表格时,我已经这样做了:
Form myFrm = new frmVoiceOver(resultingMessage);
myFrm.Show();
Run Code Online (Sandbox Code Playgroud)
然后,我的VoiceOver表单看起来像这样:
public frmVoiceOver(NewDataSet loginData)
{
InitializeComponent();
}
private void btnVoiceOverNo_Click(object sender, EventArgs e)
{
this.Close();
Form myFrm = new frmClipInformation();
myFrm.Show();
}
Run Code Online (Sandbox Code Playgroud)
当我调试时,我可以看到数据处于loginData第二种形式,但我似乎无法在btnVoiceOverNo_Click事件中访问它.我如何访问它以便将其传递给下一个表单?
Ada*_*rth 11
您需要loginData在frmVoiceOver类中放入一个局部变量,以便能够从其他方法访问它.目前它的范围是构造函数:
class frmVoiceOver : Form
{
private NewDataSet _loginData;
public frmVoiceOver(NewDataSet loginData)
{
_loginData = loginData;
InitializeComponent();
}
private void btnVoiceOverNo_Click(object sender, EventArgs e)
{
// Use _loginData here.
this.Close();
Form myFrm = new frmClipInformation();
myFrm.Show();
}
}
Run Code Online (Sandbox Code Playgroud)
此外,如果两个表单在同一个进程中,您可能不需要序列化数据,只需将其作为表单构造函数的标准引用传递即可.
像" C#变量范围 " 这样的Google 可以在这个领域了解更多,因为你会一直遇到这个概念.我很感激你是自学成才所以我只是想加强那个:-)
| 归档时间: |
|
| 查看次数: |
29947 次 |
| 最近记录: |