📄 form1.vb
字号:
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写处置以清理组件列表。
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
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意:以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents tmrDrawShape As System.Windows.Forms.Timer
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.tmrDrawShape = New System.Windows.Forms.Timer(Me.components)
'
'tmrDrawShape
'
Me.tmrDrawShape.Enabled = True
Me.tmrDrawShape.Interval = 500
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.BackColor = System.Drawing.Color.Black
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
Me.Name = "Form1"
Me.Text = "Form1"
Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
End Sub
#End Region
Dim m_Graphics As Graphics
Dim m_ScreenWidth, m_ScreenHeight As Integer
Dim randnum As New Random()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'取得窗体的Graphics对象,以供绘画用
m_Graphics = Me.CreateGraphics
'取得窗体的宽度和高度,以便决定绘画的位置
m_ScreenWidth = Me.Width
m_ScreenHeight = Me.Height
End Sub
Private Sub tmrDrawShape_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrDrawShape.Tick
'随机颜色
Dim randColor As Color
'随机的GraphicsPath开始点和结束点
Dim randStartPoint, randEndPoint As Point
'贝塞尔曲线的两个随机控制点
Dim randCtrlPoint1, randCtrlPoint2 As Point
'随机的GraphicsPath
Dim randGrphPath As New System.Drawing.Drawing2D.GraphicsPath()
'生成随机颜色
randColor = Color.FromArgb(randnum.Next(255), randnum.Next(255), randnum.Next(255), randnum.Next(255))
'生成4个随机点
randStartPoint = New Point(randNum.Next(m_ScreenWidth), randNum.Next(m_ScreenHeight))
randEndPoint = New Point(randNum.Next(m_ScreenWidth), randNum.Next(m_ScreenHeight))
randCtrlPoint1 = New Point(randNum.Next(m_ScreenWidth), randNum.Next(m_ScreenHeight))
randCtrlPoint2 = New Point(randnum.Next(m_ScreenWidth), randnum.Next(m_ScreenHeight))
'用这4个随机点构造一条贝塞尔曲线和一条直线,并把它们加入到GraphicsPath中
'由于贝塞尔曲线和直线有共同的开始点和结束点,故GraphicsPath一定是封闭的
randGrphPath.AddBezier(randStartPoint, randCtrlPoint1, randCtrlPoint2, randEndPoint)
randGrphPath.AddLine(randStartPoint, randEndPoint)
'在封闭的GraphicsPath中填上颜色
m_Graphics.FillPath(New SolidBrush(randColor), randGrphPath)
End Sub
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
Me.Close()
End Sub
<STAThread()> Shared Sub Main(ByVal args As String())
If args.Length > 0 Then
' 如果命令行参数为"/s",说明Windows调用屏幕保护程序了,
' 则直接运行屏幕保护窗体
If args(0).ToLower = "/s" Then
Dim frmScreenSaver As Form1 = New Form1()
frmScreenSaver.ShowDialog()
' 当用户退出屏幕保护程序,则程序本身也退出
Application.Exit()
End If
Else
'如果没有传入参数,很可能是用户直接调用了,则执行
Dim frmScreenSaver As Form1 = New Form1()
frmScreenSaver.ShowDialog()
Application.Exit()
End If
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -