⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formmain.vb

📁 Visual Basic.net 实例入门
💻 VB
📖 第 1 页 / 共 5 页
字号:
                lbPen1.BackColor = Color.Black
                Panel2.BackColor = Color.White
                lbPen2.BackColor = Color.Black
                Panel4.BackColor = Color.White
                lbPen4.BackColor = Color.Black
                Panel5.BackColor = Color.White
                lbPen5.BackColor = Color.Black
                '将其他画笔的颜色复原

            Case 10
                Panel4.BackColor = Color.Blue
                lbPen4.BackColor = Color.White
                '达到反白的效果

                Panel1.BackColor = Color.White
                lbPen1.BackColor = Color.Black
                Panel2.BackColor = Color.White
                lbPen2.BackColor = Color.Black
                Panel3.BackColor = Color.White
                lbPen3.BackColor = Color.Black
                Panel5.BackColor = Color.White
                lbPen5.BackColor = Color.Black
                '将其他画笔的颜色复原

            Case 20
                Panel5.BackColor = Color.Blue
                lbPen5.BackColor = Color.White
                '达到反白的效果

                Panel1.BackColor = Color.White
                lbPen1.BackColor = Color.Black
                Panel2.BackColor = Color.White
                lbPen2.BackColor = Color.Black
                Panel3.BackColor = Color.White
                lbPen3.BackColor = Color.Black
                Panel4.BackColor = Color.White
                lbPen4.BackColor = Color.Black
                '将其他画笔的颜色复原
        End Select

        iWidth = width
        '记下用户选择的画笔宽度
    End Sub

    Private Sub InitPen(ByVal pen As Integer)
        Dim i As Integer
        For i = 1 To num
            ToolBar1.Buttons.Item(i - 1).Pushed = False
        Next
        ToolBar1.Buttons.Item(pen).Pushed = True
        '使ToolBar1的各按钮中只有一个按钮保持“按下”状态

        iButton = pen
        '记下用户选择的画笔

        Select Case pen
            Case 0, 2, 4, 7, 10, 11, 14
                Label4.Visible = True
                Label5.Visible = False
                pnlWidth.Visible = True
                pnlIcon.Visible = False
                pnlStyle.Visible = False

                Label1.Visible = True
                pnlColor1.Visible = True
                pnlColor2.Visible = False

                mColor.Enabled = True
                mColor2.Enabled = False
                mWidth.Enabled = True
                mIconSet.Enabled = False
                '画笔为单线条画笔

            Case 1
                Label4.Visible = True
                Label5.Visible = False
                pnlWidth.Visible = True
                pnlIcon.Visible = False
                pnlStyle.Visible = False

                Label1.Visible = False
                pnlColor1.Visible = False
                pnlColor2.Visible = False

                mColor.Enabled = False
                mColor2.Enabled = False
                mWidth.Enabled = True
                mIconSet.Enabled = False
                '用户选择了“橡皮”

            Case 3
                Label4.Visible = False
                Label5.Visible = True
                pnlWidth.Visible = False
                pnlIcon.Visible = True
                pnlStyle.Visible = False

                Label1.Visible = False
                pnlColor1.Visible = False
                pnlColor2.Visible = False

                mColor.Enabled = False
                mColor2.Enabled = False
                mWidth.Enabled = False
                mIconSet.Enabled = True

                If bIcoDef = False Then
                    If OpenFileDialog1.ShowDialog = DialogResult.OK Then
                        icoPen = New Icon(OpenFileDialog1.FileName)
                    End If
                    '打开图标文件
                    bIcoDef = True
                End If
                '画笔为图标画笔

            Case 5, 8, 12, 16
                Label4.Visible = True
                Label5.Visible = False
                pnlWidth.Visible = True
                pnlIcon.Visible = False
                pnlStyle.Visible = False

                Label1.Visible = True
                pnlColor1.Visible = True
                pnlColor2.Visible = False


                mColor.Enabled = True
                mColor2.Enabled = False
                mWidth.Enabled = True
                mIconSet.Enabled = False
                '画笔为实心画笔

            Case 6, 9, 13, 17
                Label4.Visible = False
                Label5.Visible = True
                pnlWidth.Visible = False
                pnlIcon.Visible = False
                pnlStyle.Visible = True

                Label1.Visible = True
                pnlColor1.Visible = False
                pnlColor2.Visible = True


                mColor.Enabled = False
                mColor2.Enabled = True
                mWidth.Enabled = False
                mIconSet.Enabled = False
                '画笔为指定风格的画笔

            Case 10, 11, 12, 13, 14, 15, 16, 17
                ReDim p(-1)
                '清空并重置动态数组p
        End Select
    End Sub

    Private Sub formMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        g = PictureBox1.CreateGraphics
        iButton = 0
        iWidth = 1
        bIcoDef = False
        ReDim p(-1)
        '变量初始化

        Label4.Visible = True
        Label5.Visible = False
        pnlWidth.Visible = True
        pnlIcon.Visible = False
        pnlStyle.Visible = False

        mColor2.Enabled = False
        mIconSet.Enabled = False

        Label1.Visible = True
        pnlColor1.Visible = True
        pnlColor2.Visible = False

        OpenFileDialog1.Filter = "ico文件|*.ico"

        Dim i As Integer
        For i = 1 To 52
            cbStyle.Items.Add(CStr(i))
        Next
        '控件属性初始化

    End Sub

    Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
        InitPen(ToolBar1.Buttons.IndexOf(e.Button))
        '根据用户选择的画笔对程序进行初始化
    End Sub

    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        If e.Button = MouseButtons.Left Then
            p1.X = e.X
            p1.Y = e.Y
        End If
        ' 当鼠标的左键被按下时,将此时鼠标的坐标赋给p1
    End Sub

    Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
        If e.Button = MouseButtons.Left Then
            p2.X = e.X
            p2.Y = e.Y
        End If
        '当鼠标的左键被抬起时,将此时鼠标的坐标赋给p2

        Select Case iButton
            Case 2
                Dim pn As Pen = New Pen(lbColor.BackColor, iWidth)
                g.DrawLine(pn, p1, p2)
                '从坐标p1到坐标p2画直线

            Case 4, 5, 6, 7, 8, 9
                Dim pStart As Point, pEnd As Point
                If p1.X < p2.X Then
                    If p1.Y < p2.Y Then
                        pStart = p1
                        pEnd = p2
                        '坐标p1在坐标p2的左上方向
                    Else
                        pStart.X = p1.X
                        pStart.Y = p2.Y
                        pEnd.X = p2.X
                        pEnd.Y = p1.Y
                        '坐标p1在坐标p2的左下方向
                    End If
                Else
                    If p1.Y < p2.Y Then
                        pStart.X = p2.X
                        pStart.Y = p1.Y
                        pEnd.X = p1.X
                        pEnd.Y = p2.Y
                        '坐标p1在坐标p2的右上方向
                    Else
                        pStart = p2
                        pEnd = p1
                        '坐标p1在坐标p2的右下方向
                    End If
                End If
                '根据坐标p1和坐标p2的相对位置确定坐标pStart和坐标pEnd

                Select Case iButton
                    Case 4
                        Dim pn As Pen = New Pen(lbColor.BackColor, iWidth)
                        Dim rect As Rectangle = New Rectangle(pStart.X, pStart.Y, pEnd.X - pStart.X, pEnd.Y - pStart.Y)
                        g.DrawRectangle(pn, rect)
                        '从点以p1到坐标p2的连线为对角线画空心矩形

                    Case 5
                        Dim pn As Pen = New Pen(lbColor.BackColor, iWidth)
                        Dim rect As Rectangle = New Rectangle(pStart.X, pStart.Y, pEnd.X - pStart.X, pEnd.Y - pStart.Y)
                        Dim br As SolidBrush = New SolidBrush(lbColor.BackColor)
                        g.FillRectangle(br, rect)
                        '从点以p1到坐标p2的连线为对角线画实心矩形

                    Case 6
                        Dim pn As Pen = New Pen(lbColor.BackColor, iWidth)
                        Dim rect As Rectangle = New Rectangle(pStart.X, pStart.Y, pEnd.X - pStart.X, pEnd.Y - pStart.Y)
                        Dim iStyle As Integer
                        If cbStyle.Text = "" Then
                            iStyle = 0
                        Else
                            iStyle = cbStyle.Items.IndexOf(cbStyle.Text)
                        End If
                        Dim br As HatchBrush = New HatchBrush(iStyle, lbLineColor.BackColor, lbFillColor.BackColor)
                        g.FillRectangle(br, rect)
                        '从点以p1到坐标p2的连线为对角线画指定填充风格的矩形

                    Case 7
                        Dim pn As Pen = New Pen(lbColor.BackColor, iWidth)
                        Dim rect As Rectangle = New Rectangle(pStart.X, pStart.Y, pEnd.X - pStart.X, pEnd.Y - pStart.Y)
                        g.DrawEllipse(pn, rect)
                        '画以rect为内矩形的空心椭圆

                    Case 8
                        Dim pn As Pen = New Pen(lbColor.BackColor, iWidth)
                        Dim rect As Rectangle = New Rectangle(pStart.X, pStart.Y, pEnd.X - pStart.X, pEnd.Y - pStart.Y)
                        Dim br As SolidBrush = New SolidBrush(lbColor.BackColor)
                        g.FillEllipse(br, rect)
                        '画以rect为内矩形的实心椭圆

                    Case 9
                        Dim pn As Pen = New Pen(lbColor.BackColor, iWidth)
                        Dim rect As Rectangle = New Rectangle(pStart.X, pStart.Y, pEnd.X - pStart.X, pEnd.Y - pStart.Y)
                        Dim iStyle As Integer
                        If cbStyle.Text = "" Then
                            iStyle = 0
                        Else
                            iStyle = cbStyle.Items.IndexOf(cbStyle.Text)
                        End If
                        Dim br As HatchBrush = New HatchBrush(iStyle, lbLineColor.BackColor, lbFillColor.BackColor)
                        g.FillEllipse(br, rect)
                        '从点以p1到坐标p2的连线为对角线画指定填充风格的椭圆矩形
                End Select

            Case 10
                Dim pn2 As Pen = New Pen(Color.White)
                '定义白色画笔作为擦除上次所画曲线的橡皮擦
                If UBound(p) > 1 Then
                    g.DrawCurve(pn2, p)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -