0

我有一个内置了超时功能的应用程序,它会在一段时间不活动后激活,并提示用户输入密码。

出现此密码屏幕时,有时仍可以读取此窗口后面的一些敏感数据。

理想情况下,我想隐藏或模糊密码对话后面的窗口。但我对其他可能相关的建议持开放态度。

我假设我可以迭代所有打开的窗口并将它们最小化,或者对它们做一些其他时髦的事情以使它们上的数据不可读。

有什么想法吗?

谢谢,丰富

4

2 回答 2

0

好的,我已经使用以下代码实现了这一点......

        foreach (Form f in Application.OpenForms)
        {
            f.Visible = false;
        }
        PasswordPrompt.ShowDialog();
        PasswordPrompt.Dispose();
        foreach (Form f in Application.OpenForms)
        {
            f.Visible = true;
        }

“不透明度”选项不起作用,因为缩略图仍然以完全不透明度显示表单,虽然几乎无法阅读,但并不理想。

@Ginosaji,如果您想发布类似的答案,我会在您的答案旁边给您一个“打勾”,因为您的评论为我指明了正确的方向。

于 2013-04-27T13:28:15.747 回答
-2

Form.Hide() 是您打算做的最简单的解决方案。实际上,只需将不透明度设置为 0.1 就会隐藏您的表单,以至于只能看到“轮廓的幽灵”。但是,如果您对一些美学展示感兴趣,那么您必须即兴发挥。例如,下面的代码将逐渐使您的表单透明,然后恢复为不透明:

private void frmOpacity_Load(object sender, EventArgs e)
{
this.Opacity = 0;
for (double i = -1; i <= 1; i+= 0.005)
{
this.Opacity = System.Math.Abs(i);
Application.DoEvents();
System.Threading.Thread.Sleep(5);
}
}

如果你对更多这样的想法感兴趣,那么你可以查看我的博文:http: //dot-net-talk.blogspot.com/2013/04/some-windows-forms-magic-in-net.html

于 2013-04-26T19:00:23.280 回答