我有一个内置超时功能的应用程序,这将在一段时间不活动后激活,并提示用户输入密码。
出现此密码屏幕时,有时可能仍会读取此窗口后面的一些敏感数据。
理想情况下,我想隐藏或模糊密码对话框后面的窗口。但我愿意接受可能相关的其他建议。
我假设我可以迭代所有打开的窗口,并将它们最小化,或者对它们做一些其他的时髦,以使它们上的数据不可读。
任何想法?
谢谢,Rich
答案 0 :(得分:0)
好的,我用以下代码实现了这个......
foreach (Form f in Application.OpenForms)
{
f.Visible = false;
}
PasswordPrompt.ShowDialog();
PasswordPrompt.Dispose();
foreach (Form f in Application.OpenForms)
{
f.Visible = true;
}
&#39> opactity'选项不起作用,因为缩略图仍然显示具有完全不透明度的形式,虽然几乎不可能读取,但并不理想。
@Ginosaji,如果你想发一个类似的答案,我会给你一个' tick'在您的回答旁边,因为您的评论指出了我正确的方向。
答案 1 :(得分:-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