我有一个我创建的表单,它应该加载与主表单分开的登录信息/设置。我想知道我是如何将这些信息从一种形式传递给另一种形式的。
我认为你需要使用形式封闭事件之类的东西(当表格关闭时我会传递信息)。但我不确定如何去做。
答案 0 :(得分:1)
不,您通常会使用属性,或使用字段来快速解决问题。在获取信息的表单中,从属性中返回数据:
public readonly int Age {
get {
return int.Parse(this.txtAge.Text);
}
}
例如,。然后,在表单关闭后,您将像任何其他属性一样访问它:
SomeForm someForm = new SomeForm();
someForm.ShowDialog();
int userAge = someForm.Age;
答案 1 :(得分:0)
这样做有两种常用方法。最直接的方法是向辅助表单添加一个新事件,该表单在完成加载的登录信息时引发。然后主表格可以收听此事件。一旦收到它,它就可以关闭帮助形式。
class LoginInformationEventArgs : EventArgs {
...
}
class HelperForm : Form {
...
public event EventHandler<LoginInformationEventArgs> LoginInformationLoaded;
...
}
class MainForm : Form {
LoginInformationEventArgs _loginInfo;
public void ShowHelper() {
var helper = new HelperForm();
helper.LoginInformationLoaded += delegate (sender, e) {
_loginInfo = e;
helper.Close();
};
helper.Show();
}
}
第二种方法是在助手表单上使用属性。表单负责在关闭之前设置它们,然后主对话框可以在完成后直接从帮助程序表单中读取它们。
class LoginInformation {
...
}
class HelperForm : Form {
public LoginInformation { get; set; }
private void OnCompleted() {
LoginInformation = ...
this.Close();
}
}
class MainForm : Form {
public void ShowHelper() {
var helper = new HelperForm();
helper.ShowDialog(this);
Process(helper.LoginInformation);
}
}