一个雪花屏幕保程序,它显示一个背景,雪花缓缓落下,单击鼠标或按任意键可以退出,主要用的是Graphics.FillEllipse方法,源码如下:

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Public Sub New()
        MyBase.New()

'This call is required by the Windows Form Designer.
        InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
    Friend WithEvents Timer1 As System.Windows.Forms.Timer
    Private components As System.ComponentModel.IContainer

'Required by the Windows Form Designer

'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer. 
    'Do not modify it using the code editor.
    Friend WithEvents pb1 As System.Windows.Forms.PictureBox
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.components = New System.ComponentModel.Container()
        Me.pb1 = New System.Windows.Forms.PictureBox()
        Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
        Me.SuspendLayout()
        '
        'pb1
        '
        Me.pb1.Location = New System.Drawing.Point(24, 16)
        Me.pb1.Name = "pb1"
        Me.pb1.Size = New System.Drawing.Size(360, 216)
        Me.pb1.TabIndex = 0
        Me.pb1.TabStop = False
        '
        'Timer1
        '
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(456, 273)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.pb1})
        Me.Name = "Form1"
        Me.Text = "ScreenSaver"
        Me.ResumeLayout(False)

End Sub

#End Region

'雪花的数量
    Private amount As Integer
    '每个雪花的横坐标、纵坐标、下落速度和大小
    Private snowx() As Integer
    Private snowy() As Integer
    Private snowv() As Integer
    Private snows() As Integer
    Private r As Random = New Random()

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '设置窗体的边框风格为没有边框(同时也没有标题栏)
        Me.FormBorderStyle = FormBorderStyle.None
        '设置WindowState为Maximized,可以覆盖任务栏
        Me.WindowState = FormWindowState.Maximized

'设置pb1的属性
        pb1.Location = Me.Location
        pb1.Size = Me.Size
        pb1.BorderStyle = System.Windows.Forms.BorderStyle.None
        pb1.SizeMode = PictureBoxSizeMode.StretchImage
        pb1.Image = Image.FromFile("背景.tif")

'初始化关于雪花的参数
        Snow()
        Timer1.Interval = 100
        Timer1.Enabled = True
        '隐藏光标
        Me.Cursor.Hide()
    End Sub

Private Sub Snow()
        amount = 1500
        ReDim snowx(amount - 1)
        ReDim snowy(amount - 1)
        ReDim snowv(amount - 1)
        ReDim snows(amount - 1)
        Dim i As Integer
        For i = 0 To amount - 1
            '初始化每个雪花
            InitSnowflake(i)
        Next
    End Sub

Private Sub InitSnowflake(ByVal i As Integer)
        '注意横坐标的最大取值为Me.Width-1,否则会发生越界的错误
        snowx(i) = r.Next(0, Me.Width - 1)
        '这是为了使雪花不要过于集中于屏幕底部
        snowy(i) = r.Next(0, Me.Height * 3 / 4)
        snowv(i) = r.Next(10, 30)
        '这是为了使小雪花的数量多一些,大雪花相对少一些
        snows(i) = (r.Next(1, 3) * 100 + r.Next(50, 180)) / 101
    End Sub

Private Sub pb1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles pb1.Paint
        Dim g As Graphics = e.Graphics
        Dim i As Integer
        For i = 0 To amount - 1
            g.FillEllipse(Brushes.White, snowx(i), snowy(i), snows(i), snows(i))
        Next
    End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim i As Integer
        For i = 0 To amount - 1
            '获取雪花当前时刻的纵坐标
            snowy(i) += snowv(i)
            If snowy(i) >= Me.Height Then
                '如果雪花已经下到屏幕底部,则重新对其进行初始化
                InitSnowflake(i)
            End If
        Next
        pb1.Invalidate()
    End Sub

Private Sub pb1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pb1.MouseDown
        Me.Close()
    End Sub

Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
        Me.Close()
    End Sub

End Class

雪花屏幕保护程序(VB.ENT)相关推荐

  1. 如何启动屏幕保护程序

    当前屏幕保护程序在注册表中的位置: HKEY_CURRENT_USER/Control Panel/Desktop As for starting an exe in C#: Process myPr ...

  2. 如何获取屏幕保护程序的密码

    大家都知道,WINDOWS9X只是一个桌面操作系统,它的稳定性和保密性一直受大家的批评.现在,我就通过介绍提取WINDOWS98的屏幕保护程序的密码的算法来说明WINDOWS98的保密性是怎样的差! ...

  3. html文件设置成mac屏保,Mac怎么设置屏幕保护?如何设置Mac屏幕保护程序?

    Mac电脑如何设置屏幕保护程序?屏保是我们显示个性的重要途径,也是保护我们的电脑安全的一个重要方法.MAC用户想要修改自己的屏保该怎么办呢?今天PC6小编就教大家如何在Mac系统下设置桌面背景以及屏幕 ...

  4. 询问HTG:白噪声屏幕保护程序,有效的文件命名以及从密码泄露中恢复

    Once a week we share three of the questions we've answered from the Ask HTG inbox with the greater r ...

  5. windows xp 屏幕保护程序_小礼物:3D Windows XP 屏幕保护程序

    航通社旗下公众号"56K小猫"(微信:modem56k),原创文章未经授权禁止转载.航通社微信:lifeissohappy 微博:@航通社 生 / 活 / 小 / 妙 / 招 从昨 ...

  6. 个性屏幕保护程序_Mac高清鸟瞰屏幕保护程序,酷毙了

    最新的Aerial for Mac配备了一个漂亮的屏幕保护程序,由在旧金山,纽约,伦敦,中国和许多其他地方录制的一系列航拍电影组成.如果您想在Mac上使用这些剪辑,现在有一种简单的方法可以实现. Ae ...

  7. html文件设置成mac屏保,如何将视频设置为Mac上的屏幕保护程序 | MOS86

    尽管您可能已经在享受Mac上预装的屏幕保护程序,但现在您可以添加一种新的屏幕保护程序到Mac.您现在可以将视频添加为屏幕保护程序. 输入SaveHollywood,一个Mac应用程序,允许您将视频设置 ...

  8. linux替换屏幕保护进程,有没有一个体面的方式来阻止linux中的屏幕保护程序?...

    我正在寻找一种体面的,不跛脚的方式来禁止xscreensaver,kscreensaver或gnome-screensaver,哪些可能正在运行,最好是以屏幕保护程序的方式,而且它绝对肯定必须执行得很 ...

  9. 液晶显示器不宜使用屏幕保护程序

        在使用台式电脑时,很多人都喜欢使用屏幕保护程序,当他们转为使用笔记本电脑时,这个好习惯也被保留了下来,但他们却不知屏幕保护程序对笔记本电脑非但没有任何好处,反而还会造成一些负面影响. 实际上屏 ...

  10. 计算机无法屏保,电脑屏幕保护程序为什么不能修改 原因及解决方法【详细介绍】...

    为何不能修改电脑屏幕保护程序? 虽然屏幕保护并不是专门为省电而设计的,但一般Windows下的屏幕保护程序都比较暗,大幅度降低屏幕亮度,有一定的省电作用. 现行显示器分为两种--CRT显示器和LCD显 ...

最新文章

  1. Jenkins 在 Kubernetes 上的实践
  2. Python之文件操作
  3. 从事人工智能要学计算机什么专业,人工智能专业需要什么学历
  4. 径向基(Radial basis function)神经网络、核函数的一些理解
  5. hbase里面命令行删除_HBase实践 | HBase疑难杂症诊治
  6. 进程虚拟地址空间之数据分区存放【转】
  7. Python3_基础部分_第一个Python程序
  8. java循环while之等差数列均值_java基础_while 循环语句的定义及用法
  9. Android 手势放大图片
  10. python3 在线加密_Python3非对称加密算法RSA实例详解
  11. 2017.11.21 MS Power BI training
  12. Oracle的CLOB大数据字段类型(转)
  13. 吉米多维奇数学分析习题集每日一题--泰勒公式习题1376
  14. 同义词相似度可以怎样计算
  15. 关于 Kubernetes中NetworkPolicy(网络策略)方面的一些笔记
  16. BUUCTF·[MRCTF2020]天干地支+甲子·WP
  17. jsonp无X-Requested-With 及其深扒
  18. base64上传为表单提交给后台的方法
  19. Cytoscape安装及使用
  20. 大数据量下水晶报表的实现及显示过程中的进度条显示讨论

热门文章

  1. 在VT上搜索恶意软件
  2. 【python】pycharts画关联图
  3. python解决Unicode编码问题比如\xE6\x9F\xB3\xE4\xBA\x91
  4. Windows下安全权限设置详解
  5. 算法刷题【洛谷P1359】租用游艇(最短路径Floyd算法和Dijkstra算法模板题)
  6. Beyond Compare出现“许可证密钥已被撤销”提示的解决办法(非一劳永逸)
  7. 3DLC系列之:自动匹配颜色
  8. 限制网络带宽的软件Netlimiter
  9. win7右击应用程序资源管理器停止工作问题
  10. vue单页面怎么做SEO优化