Winform中实现自定义屏保效果(附代码下载)
程序员文章站
2022-07-02 12:26:20
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 新建form窗体,窗体中设计布局如下,一个Panel中拖拽四个label,然后添加两个Button,再添加一个T ......
场景
效果
注:
博客主页:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
新建form窗体,窗体中设计布局如下,一个panel中拖拽四个label,然后添加两个button,再添加一个timer控件。
在窗体的load事件中将label进行隐藏
private void form1_load(object sender, eventargs e) { labelvisible(false);//隐藏要移动的文本 }
public void labelvisible(bool n) { label1.visible = n;//隐藏或显示该控件 label2.visible = n; label3.visible = n; label4.visible = n; }
在预览按钮的点击事件中,对预览进行初始化。
private void button1_click(object sender, eventargs e) { preview();//对预览进行初始化 }
public void preview() { this.formborderstyle = formborderstyle.sizable;//使窗体有边框 this.windowstate = formwindowstate.normal;//使窗体恢复默认大小 this.backcolor = color.gainsboro;//设设置窗体的背景颜色 panel1.visible = true;//显示该控件 multimedia(panel1);//设置窗体中各控件的样式 timer1.start();//启动计时器 }
会首先执行设置窗体中各控件的样式的方法
public void multimedia(control panel) { labelvisible(true);//显示要移动的文本 if (panel.name == "form1")//如果父级窗体是当前窗体 { isbool = false;//隐藏 fontsize = 20;//设置字体大小 } else { isbool = true;//显示 fontsize = 10;//设置字体大小 } label1.text = "霸道的程序猿";//设置文本 label1.parent = panel;//设置父级控件 label1.font = new font("宋体", fontsize, fontstyle.bold);//设置字体样式 label2.parent = panel;//设置父级控件 label2.text = "氓" + "\n" + "流" + "\n" + "道" + "\n" + "霸";//设置纵向文本 label2.font = new font("宋体", fontsize, fontstyle.bold);//设置字体样式 label3.text = "猿序程的道霸";//设置文本 label3.parent = panel;//设置父级控件 label3.font = new font("宋体", fontsize, fontstyle.bold);//设置字体样式 label4.text = "氓" + "\n" + "流" + "\n" + "道" + "\n" + "霸"; ;//设置纵向文本 label4.parent = panel;//设置父级控件 label4.font = new font("宋体", fontsize, fontstyle.bold);//设置字体样式 panel.visible = isbool;//隐藏或显示 button1.visible = isbool;//隐藏或显示 button2.visible = isbool;//隐藏或显示 label1.top = panel.height / 4;//设置当前控件的显示位置 label3.top = (panel.height / 4) * 3;//设置当前控件的显示位置 label3.left = 0 - label2.width;//设置当前控件的显示位置 label4.left = (panel.width / 4) * 3;//设置当前控件的显示位置 label4.top = 0 - label2.height;//设置当前控件的显示位置 label2.left = panel.width / 4;//设置当前控件的显示位置 frmcontainer = panel;//记录父级控件 }
然后会启动计时器,在计时器执行的具体方法中
private void timer1_tick(object sender, eventargs e) { //文字从右到左滚动 label1.left = label1.left - 2;//向左移动 if ((label1.left + label1.width) < 1)//当超出左边界时 label1.left = frmcontainer.width;//在右边出现 //文字从下到上滚动 label2.top = label2.top - 1;//向上移动 if ((label2.top + label2.height) < 1)//当超出上边界时 label2.top = frmcontainer.height;//在下边出现 //文字从左到右滚动 if (label3.left > frmcontainer.width)//如果超出右边界 label3.left = 0 - label2.width;//在左边出现 else label3.left = label3.left + 2;//向右移动 //文字从上到下滚动 if (label4.top > frmcontainer.height)//如果超出下边界 label4.top = 0 - label4.height;//在上边出现 else label4.top = label4.top + 1;//向下移动 //如果在屏保情况下,鼠标移动 if ((mouse.x != control.mouseposition.x || mouse.y != control.mouseposition.y) && panel1.visible == false) preview();//恢复预览状态 }
在屏保按钮的点击事件中,就是将窗体的边框去掉,然后将窗体最大化。
private void button2_click(object sender, eventargs e) { this.formborderstyle = formborderstyle.none;//窗体无边框 this.windowstate = formwindowstate.maximized;//窗体最大化 this.backcolor = color.black;//设置窗体背景为黑色 multimedia(this);//设置窗体中各控件的样式 timer1.start();//启动计时器 button1.visible = false;//隐藏 button2.visible = false;//隐藏 panel1.visible = false;//隐藏 mouse = control.mouseposition;//获取鼠标的屏幕坐标 }
代码下载
https://download.csdn.net/download/badao_liumang_qizhi/12028250
上一篇: wpf键盘
下一篇: Python爬取《冰雪奇缘2》豆瓣影评
推荐阅读
-
JPA中实现双向多对多的关联关系(附代码下载)
-
Winform中实现将照片剪贴到系统剪切板中(附代码下载)
-
Winform中实现监控CPU内存使用率(附代码下载)
-
Winform中实现图片格式转换(附代码下载)
-
Winform中实现实时颜色拾取器显示RGB和16进制颜色(附代码下载)
-
Android开发之自定义view实现通讯录列表A~Z字母提示效果【附demo源码下载】
-
Winform中实现仿XP系统的任务栏菜单效果(附代码下载)
-
Winform中实现自定义水晶按钮控件(附代码下载)
-
Winform中使用用户控件实现带行数和标尺的RichTextBox(附代码下载)
-
Android中实现一个简单的逐帧动画(附代码下载)