C#语言实例源码系列-实现自定义屏保

news2024/11/28 16:44:41
专栏分享
  • 点击跳转=>Unity3D特效百例
  • 点击跳转=>案例项目实战源码
  • 点击跳转=>游戏脚本-辅助自动化
  • 点击跳转=>Android控件全解手册

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单

在这里插入图片描述

👉实践过程

😜效果

在这里插入图片描述

😜代码

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    Control FrmContainer = new Control(); //实例化Control类
    bool isbool = true; //是否开启了屏保
    int fontSize = 0; //字休大小
    public Point mouse = new Point(0, 0); //记录鼠标的位置

    private void button1_Click(object sender, EventArgs e)
    {
        preview(); //对预览进行初始化
    }

    /// <summary>
    /// 对预览进行初始化
    /// </summary>
    public void preview()
    {
        this.FormBorderStyle = FormBorderStyle.Sizable; //使窗体有边框
        this.WindowState = FormWindowState.Normal; //使窗体恢复默认大小
        this.BackColor = Color.Gainsboro; //设设置窗体的背景颜色
        panel1.Visible = true; //显示该控件
        multimedia(panel1); //设置窗体中各控件的样式
        timer1.Start(); //启动计时器
    }

    /// <summary>
    /// 隐藏或显示Label类的控件
    /// </summary>
    /// <param n ="bool">要改变图片的对象</param>
    public void LabelVisible(bool n)
    {
        label1.Visible = n; //隐藏或显示该控件
        label2.Visible = n;
        label3.Visible = n;
        label4.Visible = n;
    }

    /// <summary>
    /// 在显示预览和屏保前,对窗体中的各控件进行设置
    /// </summary>
    /// <param panel ="Control">设置父级控件</param>
    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; //获取鼠标的屏幕坐标
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        LabelVisible(false); //隐藏要移动的文本
    }
}

需要的再直接Call我,直接发。

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/41801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Class文件结构

文章目录1.概述1.1 字节码文件的跨平台性1.2 Java的前端编译器1.3 透过字节码指令看代码细节2. 虚拟机的基石:Class文件3. Class文件结构3.1 魔数3.2 Class文件版本号3.3 常量池3.4 访问标识3.5 类索引、父类索引、接口索引集合3.6 字段表集合3.7 方法表集合3.8 属性表集合4. 使…

No.178# 混沌工程相关内容梳理

引言随着公司规模业务的快速增长&#xff0c;数以千计甚至万计的微服务&#xff0c;依赖的各类组件越来越多。分布式体系架构体系越来越复杂&#xff0c;没有任何一个人能够掌控所有复杂的耦合性。也就是说复杂性无法避免&#xff0c;不可能再回到单体应用&#xff0c;也无法彻…

西门子精彩触摸屏SMART V3组态配方的具体方法示例

西门子精彩触摸屏SMART V3组态配方的具体方法示例 本次和大家分享在精彩系列触摸屏中进行配方组态的具体方法,以下内容仅供大家参考: 如下图所示,首先,在连接中添加新的连接,这里以S7-200SMART为例,PLC和HMI的IP地址要设置在同一网段内, 如下图所示,在变量中,添加配…

【Java面试】来讲一讲你对String的理解

文章目录字符型常量和字符串常量的区别什么是字符串常量池&#xff1f;String 是最基本的数据类型吗String有哪些特性String为什么是不可变的&#xff1f;String真的是不可变的吗&#xff1f;String不可变的必要性是否可以继承 String 类数组有没有 length()方法&#xff1f;St…

windows线程 互斥锁CreateMutex、ReleaseMutex、CloseHandle

互斥 相关问题 多线程下代码或资源的共享使用。 互斥的使用 1.创建互斥 HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes,//安全属性&#xff08;废弃参数&#xff0c;置NULL&#xff09; BOOL bInitialOwner,//初始的拥有者TRUE/FALSE LPCTSTR lpName //命名 );…

集成电路技术——如何制造芯片(1)

1.概述 电子工业是现在高新技术的核心&#xff0c;它在人类的科技发展中发挥了巨大作用&#xff0c;电子工业已经成为成为当今世界发展最快的高新技术产业&#xff0c;在全世界各国国民经济中起着举足轻重的作用。当今的电子技术离不开集成电路&#xff0c;集成电路是电子工业…

hadoop集群迁移

集群迁移 主要是要找到两个集群中active状态的namenode 集群迁移不同于服务器之间的文件发送&#xff0c;在hdfs中&#xff0c;文件是以块的形式&#xff0c;只可以通过namenode访问文件&#xff0c;所以迁移时需要通过hadoop命令 主要命令是distcp distcp有很多参数&#xf…

Kafka - 06 Kafka 集群环境搭建(三台服务器)

文章目录1. 克隆虚拟机2. Zookeeper 集群搭建3. Kafka 集群搭建4. 测试消息发送和消费1. 主题操作2. 生产者生产消息3. 消费者消费消息1. 克隆虚拟机 kafka集群搭建&#xff0c;需要3台虚拟机环境&#xff0c;但是我目前只安装了一台虚拟机&#xff0c;因此还需要准备两台虚拟…

[附源码]计算机毕业设计springboot-Steam游戏平台系统论文

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

纯CSS制作3D动态相册【流星雨3D旋转相册】HTML+CSS+JavaScriptHTML5七夕情人节表白网页制作

这是程序员表白系列中的100款网站表白之一&#xff0c;旨在让任何人都能使用并创建自己的表白网站给心爱的人看。 此波共有100个表白网站&#xff0c;可以任意修改和使用&#xff0c;很多人会希望向心爱的男孩女孩告白&#xff0c;生性腼腆的人即使那个TA站在眼前都不敢向前表白…

MySQL数据库管理及用户管理以及数据库用户授权

MySQL数据库管理及用户管理以及数据库用户授权MySQL数据库管理1、库和表2、常用的数据类型查看数据库结构SQL语句1、SQL语句分类&#xff1a;创建及删除数据库和表管理表中的数据记录&#xff08;表数据的增删改查&#xff09;向数据表中插入新的数据记录&#xff08;增&#x…

大二Web课程设计——动漫海贼王(可以很好的应付老师的作业)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

Java基础:入门程序、常量、变量

第一章 HelloWorld入门程序 1.1 程序开发步骤说明 Java程序开发三步骤&#xff1a;编写、编译、运行。 1.2 编写Java源程序 在D:\java\javaCode目录下新建文本文件&#xff0c;完整的文件名修改为HelloWorld.java&#xff0c;其中文件名为 HelloWorld&#xff0c;后 缀名必须…

音视频技术开发周刊 | 273

每周一期&#xff0c;纵览音视频技术领域的干货。新闻投稿&#xff1a;contributelivevideostack.com。「紧急通知」LiveVideoStackCon 2022 音视频技术大会北京站改期各位LVSer们&#xff1a;因疫情影响&#xff0c;北京近期不再允许举办大型线下活动&#xff0c;我们无奈且抱…

如何向瑞芯微平台添加驱动

如何向瑞芯微平台添加驱动驱动配置驱动文件放置配置相应的编译选项与设备树结合设备树配置以avafpga视频驱动为例&#xff1a;驱动配置 驱动文件放置 为了保证驱动文件能够被系统正确识别编译&#xff0c;需要将驱动文件的源文件avafpga.c放在./kernel/drivers/media/i2c/下 …

外观专利申请定要注意哪些因素呢?

问题一&#xff1a;申请外观专利需要提交哪些申请材料呢&#xff1f; 1、外观专利请求书&#xff1b; 2、外观设计七视图的照片或者设计图&#xff1b; 3、申请人的身份证明材料&#xff1b; 4、外观设计的简要说明材料。 问题二&#xff1a;外观专利申请定要注意哪些因素…

Automatic Online Calibration of Cameras and Lasers 论文翻译

目录题目AbstractI. INTRODUCTIONII. SENSOR PROCESSINGA. Image processingB. Laser processingIII. MISCALIBRATION DETECTIONIV. AUTOMATIC CALIBRATION TRACKINGV. EXPERIMENTAL RESULTSVI. CONCLUSION题目 Automatic Online Calibration of Cameras and Lasers 下载地址&…

C++ Reference: Standard C++ Library reference: Containers: list: list: size

C官网参考链接&#xff1a;https://cplusplus.com/reference/list/list/size/ 公有成员函数 <list> std::list::size C98 size_type size() const; C11 size_type size() const noexcept; 返回大小 返回列表&#xff08;list&#xff09;容器中的元素个数。 形参 没有…

Python tkinter -- 第18章 画布控件之图像(image)

18.2.16 create_image(position, **options) 在画布的指定位置创建一个图片对象。这里的图片对象是gif&#xff0c;png&#xff0c;pgm和ppm。 &#xff08;1&#xff09;position&#xff1a;图片的坐标(x,y)。 &#xff08;2&#xff09;**options&#xff1a;图片选项 选项…

IO流~字节流

字节流 IO流分类 按照数据的流向&#xff1a;输入流&#xff1a;读数据\输出流&#xff1a;写数据按照数据类型来分 字节流&#xff1a;字节输入流&#xff1b;字节输出流字符流&#xff1a;字符输入流&#xff1b;字符输出流 一般来说&#xff0c;IO流的分类是按照数据类型…