首页 > 解决方案 > 关闭的表单仍显示在任务栏中

问题描述

在 c# 中创建一个链接到具有登录功能的数据库的多表单程序。

尝试使用 show()、showdialog() 和 close()、dispose()、hide() 在表单之间移动。

一旦通过登录表单,程序将无法正确关闭表单。

它关闭表单,因此用户无法再访问其控件,但是,“关闭”表单在 Windows 任务栏和选项卡菜单中仍然完全可见。

用户甚至可以将鼠标悬停在“关闭”表单的任务栏图标上,并查看那里的所有信息!

由于该程序将处理敏感的个人信息。我需要帮助来阻止这个问题的发生。

辅助窗体上的后退按钮的代码旨在完全关闭活动窗体并打开主窗体。

“曲线”是在方法之外定义的,因为它用于程序中的多个按钮。

Form CurForm = Form.ActiveForm;

public void Btn_Back_Click()
        {
            var MainForm = new MainForm();
            MainForm.Show();            
            CurForm.Close();        
        }

标签: c#formswinforms

解决方案


使用直接活动形式而不是 curForm

Form.ActiveForm.Close();

如果您想在代码的其他部分使用 curForm,请在创建新表单时更新 curForm,如下所示:

Form CurForm;

public void Btn_Back_Click()
{
    CurForm= new MainForm(); 
    CurForm.Show(); 

    // Do some things  

    CurForm.Close();   
}

推荐阅读