C# 从主窗体打开新窗体后,如何在出错后保留此窗体
我有申请表,从主表中打开新表:C# 从主窗体打开新窗体后,如何在出错后保留此窗体,c#,winforms,C#,Winforms,我有申请表,从主表中打开新表: Form2 frm2= new Form2(file); frm2.ShowDialog(); 并从用户输入中读取参数: TextBox tbInsert; private void btnPlay_Click(object sender, EventArgs e) { try { IPAddress ip = IPAddress.Parse(tbInsert.Text); } catch (Exceptio
Form2 frm2= new Form2(file);
frm2.ShowDialog();
并从用户输入中读取参数:
TextBox tbInsert;
private void btnPlay_Click(object sender, EventArgs e)
{
try
{
IPAddress ip = IPAddress.Parse(tbInsert.Text);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
return;
}
}
我的问题是,如果指定的IP地址不合法,在出现
消息框错误后,关闭并返回到主窗体,而不是停留在窗体2
,如果我猜正确,您的按钮被设置为返回对话框结果
类型,因此您的窗体被关闭。在form2构造函数中尝试类似的方法
btnPlay.DialogResult = DialogResult.None;
如果我猜对了,您的按钮被设置为返回一个对话框结果
类型,因此您的表单被关闭。在form2构造函数中尝试类似的方法
btnPlay.DialogResult = DialogResult.None;
您可能将“btnPlay”按钮设置为窗体的Form.AcceptButton,以便其行为类似于OK按钮,按下Enter键将关闭对话框。或者设置按钮的DialogResult属性。无论哪种方式,对话框都会自动关闭,DialogResult属性会自动设置
因此,您必须再次重置它以保持对话框打开:
try
{
// etc...
}
catch (Exception ex)
{
this.DialogResult = DialogResult.None;
MessageBox.Show(ex.Message, "Error");
}
您可能将“btnPlay”按钮设置为窗体的Form.AcceptButton,以便其行为类似于OK按钮,按下Enter键将关闭对话框。或者设置按钮的DialogResult属性。无论哪种方式,对话框都会自动关闭,DialogResult属性会自动设置
因此,您必须再次重置它以保持对话框打开:
try
{
// etc...
}
catch (Exception ex)
{
this.DialogResult = DialogResult.None;
MessageBox.Show(ex.Message, "Error");
}
为什么使用return代码>?为什么使用返回代码>?