winform 把Panel当作Div+Css 可以吗? 有用过的吗,路过的高手给看看,谢谢!

jjcl521 2010-08-30 02:02:18

--在winform中要实现一个锁屏的效果
--1,我的思路是:单击锁屏按钮后,把Panel当作Div+Css,放在窗体的最上面
--2,现在遇到的问题
-- 我窗体上有很多控件,自定义一个Panel,要怎么添加到窗体上 this.Controls.Add(p)?
-- Panel要放到哪一层,最顶层?
--3,或者用Panle这个方法根本就不可取?求思路,求方法
...全文
139 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjcl521 2010-08-31
  • 打赏
  • 举报
回复

//已经解决 谢谢楼上的朋友

//自定义一个透明的Panle
//然后屏蔽系统快捷键 即可

//自定义透明的Panel
public partial class UserPanel : UserControl
{
public UserPanel()
{

SetStyle(ControlStyles.SupportsTransparentBackColor
| ControlStyles.UserPaint
| ControlStyles.AllPaintingInWmPaint
| ControlStyles.Opaque, true);
this.BackColor = Color.Transparent;
}
private Image img;
public Image Image
{
get
{
return img;
}
set
{
img = value;
}
}

protected override void OnLocationChanged(EventArgs e)
{
//base.OnLocationChanged(e);
Visible = false;
Visible = true;
}

protected override CreateParams CreateParams
{
get
{
//return base.CreateParams;
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT
return cp;
}
}
protected override void OnPaint(PaintEventArgs pe)
{
if (img != null)
{
base.OnPaint(pe);
pe.Graphics.DrawImage(img, 0, 0);
}
else
{

}
}
}
lhzhygxy 2010-08-30
  • 打赏
  • 举报
回复
我之前就做了一个锁屏的工具,用一个没有最大最小和关闭的窗口,获取屏幕的分辨率,设置窗体的大小和分辨率一样。
调用windowsAPI,设置键盘钩子屏蔽一些组合键和快捷键。
jjcl521 2010-08-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mjp1234airen4385 的回复:]
同意使用你的思路。
把你2中的问题都实现了就行了。
当然这屏蔽不了系统热键什么的。
你可以调用windowsAPI做这些工作,做些键盘钩子子类的东西。
[/Quote]

哦,还有一个小问题 刚才没注意到

菜单栏,和快捷方式栏,没有被Panle覆盖着

Panel的透明问题
mjp1234airen4385 2010-08-30
  • 打赏
  • 举报
回复
同意使用你的思路。
把你2中的问题都实现了就行了。
当然这屏蔽不了系统热键什么的。
你可以调用windowsAPI做这些工作,做些键盘钩子子类的东西。

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧