C#通过窗体关闭事件传递对象
我创建了一个表单,用来加载与主表单分离的登录信息/设置。我想知道我该如何将这些信息从一种形式传递到另一种形式C#通过窗体关闭事件传递对象,c#,forms,events,C#,Forms,Events,我创建了一个表单,用来加载与主表单分离的登录信息/设置。我想知道我该如何将这些信息从一种形式传递到另一种形式 我想你需要使用表单关闭事件(我打算在表单关闭时传递信息)。但我不太清楚该怎么做。不,您通常会使用属性或字段来快速解决问题。以获取信息的形式,从属性返回数据: public readonly int Age { get { return int.Parse(this.txtAge.Text); } } 比如说。然后,在窗体关闭后,您可以像访问任何
我想你需要使用表单关闭事件(我打算在表单关闭时传递信息)。但我不太清楚该怎么做。不,您通常会使用属性或字段来快速解决问题。以获取信息的形式,从属性返回数据:
public readonly int Age {
get {
return int.Parse(this.txtAge.Text);
}
}
比如说。然后,在窗体关闭后,您可以像访问任何其他属性一样访问它:
SomeForm someForm = new SomeForm();
someForm.ShowDialog();
int userAge = someForm.Age;
有两种方法可以实现这一点。最直接的方法是向helper表单添加一个新事件,该事件在加载登录信息完成时引发。然后,主窗体可以侦听此事件。一旦收到它,它就可以关闭helper表单
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);
}
}