在恢复最小化窗口之前请求密码

Fre*_*nch 2 .net c# winforms

我正在搜索如何在恢复最小化窗口之前请求密码.

实际上,当我恢复窗口时,在显示密码对话框之前,主窗体是可见的.(我使用"调整大小"事件在表单还原时调用我的密码对话框.)

但我需要在主窗体可见之前显示密码对话框(因为它包含未经授权的人员无法看到的敏感数据)

任何想法都要使主窗体不可见,直到验证passord.

谢谢

Uwe*_*eim 5

您可以处理Resize表单的事件,并在最小化时使所有控件不可见.

然后,依次处理Resize正在恢复的表单的事件,请求密码并再次显示所有控件.

例如:

private void MyForm_Resize(object sender, EventArgs e)
{
    if ( WindowState == FormWindowState.Minimized )
    {
        // Hide controls.
    }
    else if ( WindowState == FormWindowState.Normal )
    {
        // Ask for password, then show controls.
    }
}
Run Code Online (Sandbox Code Playgroud)

为了简化控件的显示/隐藏,只需使用一个Panel控件作为表单的唯一直接子项,将所有控件放在此面板中并使其成为可见/不可见:

在此输入图像描述

(图像中的绿色表示Panel控件)