C# 如何知道用户是否在表单中单击了X
感谢所有努力回答我问题的人 我正在使用WinForms C,在MainForm_加载时,我正在为用户调用登录表单。登录表单包含X按钮、右上角的默认按钮和Loginbutton 现在 如果用户决定点击X按钮,登录表单就会关闭,主表单也会关闭,我知道怎么做。但是如果用户单击LoginButton,则LoginForm应关闭,但MainForm应保持打开状态 你知道怎么做吗?你可以在Form.FormClosing事件中检查e.CloseReason 如果单击X或用户按Alt+F4,则用户将关闭。假设您使用ShowDialog显示登录表单,则可以执行以下操作:C# 如何知道用户是否在表单中单击了X,c#,winforms,C#,Winforms,感谢所有努力回答我问题的人 我正在使用WinForms C,在MainForm_加载时,我正在为用户调用登录表单。登录表单包含X按钮、右上角的默认按钮和Loginbutton 现在 如果用户决定点击X按钮,登录表单就会关闭,主表单也会关闭,我知道怎么做。但是如果用户单击LoginButton,则LoginForm应关闭,但MainForm应保持打开状态 你知道怎么做吗?你可以在Form.FormClosing事件中检查e.CloseReason 如果单击X或用户按Alt+F4,则用户将关闭。假设
if(LoginForm.ShowDialog() == DialogResult.OK)
{
//login ok
}
您的登录表单应在关闭DialogResult之前将其设置为OK,但仅适用于成功登录,如下所示:
if(LoginSuccess){
this.DialogResult = DialogResult.OK;//this will also close the form
}
在登录按钮的click事件处理程序上,添加对此的调用。关闭
这将关闭登录表单,而不影响主表单。这是一个可选选项:
您可以通过将登录表单的ControlBox属性设置为False来禁用登录表单中的X按钮如何显示登录表单?您不需要关闭调用;设置DialogResult会自动隐藏表单并将执行返回到ShowDialog行。@Idle\u Mind:Huh。。。我从来不知道。但我不喜欢它,这不是我期望的设置属性的行为
if(LoginSuccess){
this.DialogResult = DialogResult.OK;//this will also close the form
}