Winform返回结果
本文关键字:结果 返回 Winform | 更新日期: 2023-09-27 18:07:14
我想检查winform
执行的操作是否成功。
MainForm form = new MainForm();
form.Show();
//continue in case the form returns true
窗体关闭后如何返回并检查值?
对form.Show()
的调用立即返回。在调用返回之前,用户没有机会做任何事情。如果你想等待,直到用户按下一个按钮,如OK或Cancel,你需要调用form. showdialog(),这将阻止执行剩余的代码,直到窗体关闭。
using(MainForm form = new MainForm())
{
DialogResult dr = form.ShowDialog();
if(dr == DialogResult.OK)
{
// User presses OK button,
// read the public property UserName and
// appply your logic here.
string userName = form.UserName;
}
else if(dr == DialogResult.Cancel)
{
// User presses Cancel button
MessageBox.Show("Login aborted");
}
}
这段代码还需要在MainForm类按钮上设置一些属性。OK按钮的属性应该设置为enum dialgresult。OK,而Cancel按钮应该将其属性设置为dialgresult。取消
这样,当你的用户按下OK/Cancel按钮时,你的MainForm将被隐藏(仍然没有关闭和/或处置),你可以从using块中访问MainForm实例的公共属性。
例如,假设OK按钮事件处理程序包含用户名
的登录验证。private void cmdOK_Click(object sender, EventArgs e)
{
if(.....some kind of authentication method....)
{
this.UserName = "Steve";
....
}
}
和MainForm类,一个名为UserName
的公共属性public string UserName {get; private set}
现在,如上面的示例所示,您可以在using块
中检索UserName属性注意,围绕创建表单实例调用的using块将确保在右括号处正确地处理表单。
你必须使用DialogResult
:
MainForm form = new MainForm();
DialogResult result = form.ShowDialog();
if (result == DialogResult.OK)
{
}
else
{
}
您必须设置表单的DialogResult
,例如使用按钮Click
事件处理程序:
private void Button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}