📄 drawmain.vb
字号:
Me.btnSelect.ToolTipText = "选择图元"
'
'btnDelete
'
Me.btnDelete.ImageIndex = 3
Me.btnDelete.ToolTipText = "删除图元"
'
'ToolBarButton1
'
Me.ToolBarButton1.Style = System.Windows.Forms.ToolBarButtonStyle.Separator
'
'btnLine
'
Me.btnLine.ImageIndex = 4
Me.btnLine.ToolTipText = "画直线段"
'
'btnCurve
'
Me.btnCurve.ToolTipText = "画曲线"
'
'btnRectangle
'
Me.btnRectangle.ImageIndex = 5
Me.btnRectangle.ToolTipText = "画矩形"
'
'btnCircle
'
Me.btnCircle.ImageIndex = 6
Me.btnCircle.ToolTipText = "画圆"
'
'btnArc
'
Me.btnArc.ImageIndex = 7
Me.btnArc.ToolTipText = "画圆弧"
'
'btnText
'
Me.btnText.ImageIndex = 8
Me.btnText.ToolTipText = "文本标注"
'
'ToolBarButton2
'
Me.ToolBarButton2.Style = System.Windows.Forms.ToolBarButtonStyle.Separator
'
'btnMove
'
Me.btnMove.ImageIndex = 9
Me.btnMove.ToolTipText = "平移"
'
'btnRotate
'
Me.btnRotate.ImageIndex = 10
Me.btnRotate.ToolTipText = "旋转"
'
'btnMirror
'
Me.btnMirror.ImageIndex = 11
Me.btnMirror.ToolTipText = "镜像"
'
'btnZoomIn
'
Me.btnZoomIn.ImageIndex = 12
Me.btnZoomIn.ToolTipText = "比例放大"
'
'btnZoomOut
'
Me.btnZoomOut.ImageIndex = 13
Me.btnZoomOut.ToolTipText = "比例缩小"
'
'ToolBarButton3
'
Me.ToolBarButton3.Style = System.Windows.Forms.ToolBarButtonStyle.Separator
'
'btnHelp
'
Me.btnHelp.ToolTipText = "关于"
'
'ImageList1
'
Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16)
Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer)
Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.BackColor = System.Drawing.Color.White
Me.ClientSize = New System.Drawing.Size(552, 385)
Me.Controls.Add(Me.ToolBar1)
Me.Controls.Add(Me.StatusBar1)
Me.Menu = Me.MainMenu1
Me.Name = "Form1"
Me.Text = "NET_CAD"
Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
CType(Me.Panel1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim g As Graphics = Me.CreateGraphics()
g.FillRectangle(Brushes.White, Me.ClientRectangle)
Dim spForm As New Splash()
spForm.ShowDialog(Me)
g.PageUnit = GraphicsUnit.Pixel
'相对于X轴进行镜像变换
Dim mat As New Matrix(1, 0, 0, -1, 0, 0)
g.Transform = mat
Dim rect As Rectangle = Me.ClientRectangle
Dim w As Integer = rect.Width
Dim h As Integer = rect.Height
viewDX = rect.Width / 2
viewDY = rect.Height / 2
Dim pLT As New PointF()
Dim pRB As New PointF()
With pLT
.X = rect.Left
.Y = rect.Top
End With
With pRB
.X = rect.Right
.Y = rect.Bottom
End With
viewLT = PagetoWorld(pLT)
viewRB = PagetoWorld(pRB)
Coordinate(g)
aCommand = creLine
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
Dim g As Graphics = e.Graphics
DrawAll(g)
DrawSel(g)
End Sub
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
Dim g As Graphics = Me.CreateGraphics()
Dim aPos As PointF = PagetoWorld(New PointF(e.X, e.Y))
If e.Button = MouseButtons.Left Then
aCommand.LButtonDown(g, aPos)
ElseIf e.Button = MouseButtons.Right Then
aCommand.RButtonDown(g, aPos)
End If
End Sub
Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
Dim g As Graphics = Me.CreateGraphics()
Dim aPos As PointF = PagetoWorld(New PointF(e.X, e.Y))
StatusBar1.Panels.Item(0).Text = "X=" & Str(aPos.X) & ", Y=" & Str(aPos.Y)
aCommand.MouseMove(g, aPos)
End Sub
Private Sub mnuLine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLine.Click
aCommand = creLine
End Sub
Private Sub mnuCircle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCircle.Click
aCommand = creCircle
End Sub
Private Sub mnuArc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuArc.Click
aCommand = creArc
End Sub
Private Sub mnuText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuText.Click
aCommand = creText
End Sub
Private Sub mnuCurve_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCurve.Click
aCommand = creCurve
End Sub
Private Sub mnuSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSelect.Click
aCommand = selected
End Sub
Private Sub mnuDesel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDesel.Click
Dim g As Graphics = Me.CreateGraphics
Dim i As Integer
For i = 0 To geSels.Count - 1
geSels(i).Draw(g, geDrawMode.Normal)
Next i
geSels.RemoveRange(0, geSels.Count)
End Sub
Private Sub mnuDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDelete.Click
Dim g As Graphics = Me.CreateGraphics
Dim i As Integer
For i = 0 To geSels.Count - 1
geSels(i).Draw(g, geDrawMode.Delete)
ges.Remove(geSels(i))
Next i
geSels.RemoveRange(0, geSels.Count)
End Sub
Private Sub mnuTRotate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTRotate.Click
aCommand = transRotate
End Sub
Private Sub mnuTMirror_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTMirror.Click
aCommand = transMirror
End Sub
Private Sub mnuTZoomin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTZoomout.Click
Dim g As Graphics = Me.CreateGraphics()
ScaleZoom(g, 1.2, 1.2)
End Sub
Private Sub mnuTZoomout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTZoomin.Click
Dim g As Graphics = Me.CreateGraphics()
ScaleZoom(g, 0.8, 0.8)
End Sub
Private Sub mnuAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAbout.Click
Dim about As New About
about.ShowDialog(Me)
End Sub
Private Sub mnuSelall_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSelall.Click
Dim g As Graphics = Me.CreateGraphics
Dim i As Integer
For i = 0 To ges.Count - 1
geSels.Add(ges(i))
Next
DrawSel(g)
End Sub
Private Sub mnuTMove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTMove.Click
aCommand = transMove
End Sub
Private Sub mnuSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSave.Click
Dim dlg As New SaveFileDialog
dlg.Filter = "CAD文件 (*.CAD)|*.CAD|所有文件 (*.*)|*.*"
dlg.ShowDialog(Me)
Dim FileName As String = dlg.FileName
Dim stream As New FileStream(FileName, FileMode.Create)
Dim binary As New BinaryFormatter
binary.Serialize(stream, ges)
stream.Close()
End Sub
Private Sub mnuOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuOpen.Click
Dim g As Graphics = Me.CreateGraphics()
Dim dlg As New OpenFileDialog
dlg.Filter = "CAD文件 (*.CAD)|*.CAD|所有文件 (*.*)|*.*"
dlg.ShowDialog(Me)
Dim FileName As String = dlg.FileName
Dim stream As New FileStream(FileName, FileMode.Open)
Dim binary As New BinaryFormatter
ges = CType(binary.Deserialize(stream), ArrayList)
stream.Close()
DrawAll(g)
End Sub
Private Sub mnuRect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuRect.Click
aCommand = creRectangle
End Sub
Protected Overrides Sub Finalize()
MyBase.Finalize()
End Sub
Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
If e.Button Is btnOpen Then
mnuOpen_Click(sender, e)
ElseIf e.Button Is btnSave Then
mnuSave_Click(sender, e)
ElseIf e.Button Is btnSelect Then
mnuSelect_Click(sender, e)
ElseIf e.Button Is btnDelete Then
mnuDelete_Click(sender, e)
ElseIf e.Button Is btnLine Then
mnuLine_Click(sender, e)
ElseIf e.Button Is btnRectangle Then
mnuRect_Click(sender, e)
ElseIf e.Button Is btnCircle Then
mnuCircle_Click(sender, e)
ElseIf e.Button Is btnArc Then
mnuArc_Click(sender, e)
ElseIf e.Button Is btnText Then
mnuText_Click(sender, e)
ElseIf e.Button Is btnMove Then
mnuTMove_Click(sender, e)
ElseIf e.Button Is btnRotate Then
mnuTRotate_Click(sender, e)
ElseIf e.Button Is btnMirror Then
mnuTMirror_Click(sender, e)
ElseIf e.Button Is btnZoomIn Then
mnuTZoomin_Click(sender, e)
ElseIf e.Button Is btnZoomOut Then
mnuTZoomout_Click(sender, e)
ElseIf e.Button Is btnCurve Then
mnuTCurve_Click(sender, e)
ElseIf e.Button Is btnHelp Then
mnuAbout_Click(sender, e)
End If
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -