c# - 关闭的表单仍显示在任务栏中
问题描述
在 c# 中创建一个链接到具有登录功能的数据库的多表单程序。
尝试使用 show()、showdialog() 和 close()、dispose()、hide() 在表单之间移动。
一旦通过登录表单,程序将无法正确关闭表单。
它关闭表单,因此用户无法再访问其控件,但是,“关闭”表单在 Windows 任务栏和选项卡菜单中仍然完全可见。
用户甚至可以将鼠标悬停在“关闭”表单的任务栏图标上,并查看那里的所有信息!
由于该程序将处理敏感的个人信息。我需要帮助来阻止这个问题的发生。
辅助窗体上的后退按钮的代码旨在完全关闭活动窗体并打开主窗体。
“曲线”是在方法之外定义的,因为它用于程序中的多个按钮。
Form CurForm = Form.ActiveForm;
public void Btn_Back_Click()
{
var MainForm = new MainForm();
MainForm.Show();
CurForm.Close();
}
解决方案
使用直接活动形式而不是 curForm
Form.ActiveForm.Close();
如果您想在代码的其他部分使用 curForm,请在创建新表单时更新 curForm,如下所示:
Form CurForm;
public void Btn_Back_Click()
{
CurForm= new MainForm();
CurForm.Show();
// Do some things
CurForm.Close();
}
推荐阅读
- html - 如何在带有空格的 HTML 标记中编写内联 Ruby on Rails 三元运算符?
- azure - 如何检索应用服务计划实例名称 (RDXXXXX)?
- html - 如何使用css制作圆形img
- postgresql - INSERT INTO 排除 ID 列违反主键唯一性约束
- python-3.x - hvplot histogram:DataError:没有可用的存储后端能够支持提供的数据格式
- compilation - 有没有办法在 Visual Studio Code 中编译 Lisp 源文件?
- php - BLOB 中的 TMP 与 PDF
- cytoscape - Cytoscape - 从 CyREST 设置 nodeCustomGraphicsSizeSync 和 nodeSizeLocked
- java - 无法在 AsyncTask 中未调用 Looper.prepare() 的线程内创建处理程序
- mongodb - 使用 Selenium/Java 从 MongoDB 中检索单个字段