C#制作屏保

** 屏幕保护是生活中常见的,这一章我们将学习屏幕保护。
学习之前我们得了解控件

一:控件

1):timer 时间控件
2):button 用户单击时 引发事件
3):listbox 可以从中选择项的列表
4):groupbpx 在一组空间周围显示一个带有可选标题的框架
5)label:为控件提供运行时信息或说明性文字
6):linkabel:Descriptionlinklabel
7):listview:以五种不同试图中的一种显示项的集合
8)menustrip:显示按功能分组的应用程序命令和选项。
等等。。。。
**现在了解下怎样把方形窗体变成圆形

二:画圆

 GraphicsPath path = new GraphicsPath();//画圆第一步
            path.AddEllipse(0, 0, 200, 200);//画圆第二步
            this.Region = new Region(path);//画圆第三步

画圆前提是给GraphicsPath进行实例化,因为工具箱中没有此类工具,需要手动工具。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.Drawing.Drawing2D;就是实例化的东西。

气泡代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void Form1_Load(object sender, EventArgs e)
        {
            this.FormBorderStyle = FormBorderStyle.None;//设置窗体边框
            this.Size = new Size(200, 200);//设置窗体大小
            this.Location = new Point(0, 0);//设置窗体初始位置
            this.BackColor = Color.Red ;//设置窗体颜色
            this.Opacity = 0.6;//设置窗体不透明度
            GraphicsPath path = new GraphicsPath();//画圆第一步
            path.AddEllipse(0, 0, 200, 200);//画圆第二步
            this.Region = new Region(path);//画圆第三步
            timer1.Start();//事件1开始
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.Left += 5;
            this.Top += 5;
            if (this.Top +this.Height >=Screen.PrimaryScreen .WorkingArea.Height)//窗体弹向底部
            {
                timer1.Stop();
                timer2.Start();
            }
            if (this.Left +this.Width >=Screen.PrimaryScreen.WorkingArea.Width )//判断窗体弹向右边
            {
                timer1.Stop();
                timer4.Start();
            }
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            this.Left  += 15;
            this.Top -= 5;
            if (this.Left +this.Width >=Screen.PrimaryScreen .WorkingArea.Width )//窗体在屏幕弹向右边
            {
                timer2.Stop();
                timer3.Start();
            }
            if (this.Top <=0)
            {
                timer2.Stop();
                timer1.Start();
            }
        }

        private void timer3_Tick(object sender, EventArgs e)
        {
            this.Left -= 5;
            this.Top -= 5;
            if (this.Top <=0)
            {
                timer3.Stop();
                timer4.Start();
            }
            if (this.Left <=0)
            {
                timer3.Stop();
                timer2.Start();
            }
        }

        private void timer4_Tick(object sender, EventArgs e)
        {
            this.Left -= 5;
            this.Top += 15;
            if (this .Left <=0)
            {
                timer4.Stop();
                timer1.Start();
            }
            if (this.Top +this.Height >=Screen.PrimaryScreen.WorkingArea.Height )
            {
                timer4.Stop();
                timer3.Start();
            }

        }

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {

        }
    }
}

气泡代码中说明了气泡运行路线的路径。

你可能感兴趣的:(气泡案例)