好的,我对Form Controlbox有疑问。我想知道是否可以更改或添加退出按钮在表单上执行的操作。
我可以轻松地最小化,最大化并退出表单没问题。但这就是我所面对的。
我的应用有访问权限登录。登录后,它将转到主窗体。按下后我有一个注销按钮,它会返回到登录表单。
但是,如果按退出按钮,它将退出主窗体,程序仍在运行,但无法启动登录表单。
所以我要做的是,当主表单通过红色X退出时,我希望它进入登录。
我可以走复杂的路线:无边框形式,可移动形式,自定义按钮等等,
我认为更改或添加退出按钮以返回登录表单会更容易。这可能吗?
答案 0 :(得分:1)
将逻辑从按钮单击事件中移出,转换为单独的方法。
private void button1_Click(object sender, EventArgs e)
{
OverrideFormExit();
}
private void OverrideFormExit()
{
// execute the code that was previously in button1's click event
}
现在,您可以为Form的Closed事件订阅相同的方法,以便在用户关闭Form时执行。
例如,将以下内容放在Form的构造函数中:
FormClosed += (s, e) => OverrideFormExit();
或者,您可以在实例化主表单时从登录表单中订阅主表单的已结束事件。我猜这里的代码看起来很明显。
private void ShowMainForm()
{
FormMain frmMain = new FormMain();
frmMain.Show();
frmMain.FormClosed += (s, e) => this.Show();
this.Hide();
}