منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
سؤال فى الرسم - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : سؤال فى الرسم (/showthread.php?tid=37992)



سؤال فى الرسم - Lathe1 - 11-03-21

عايز ارسم بالماوس وكل خط ارسمه يكتب إبعاده على الرسم مثلا الرسم الهندسى


RE: سؤال فى الرسم - 3booody - 11-03-21

السلام عليكم ورحمة الله وبركاته

في السابق عملت برنامج مشابه لطلبك
افتح مشروع جديد والصق هذا الكود وعدل الي يناسبك

عند الضغط بزر الماوس وتحريكه راح يرسم الخط

كود :
Imports System.Math

Public Class Form1

   Const av As Byte = 10
   Event GetPoint(ByVal x As Double, ByVal y As Double)
   Dim Orgx As Integer = Me.Width / 2
   Dim Orgy As Integer = Me.Height / 2

   Private Sub Form1_GetPoint(ByVal x As Double, ByVal y As Double) Handles Me.GetPoint
       Me.Text = "X:" & x & "  Y:" & y
   End Sub
   Dim Xv As Double = 0
   Property Xvalue() As Double
       Get
           Return Xv
       End Get
       Set(ByVal value As Double)
           Xv = value
           Invalidate()
       End Set
   End Property
   Dim yv As Double = 0
   Property Yvalue() As Double
       Get
           Return yv
       End Get
       Set(ByVal value As Double)
           yv = value
           Invalidate()
       End Set
   End Property
   Dim bb As Boolean = False

   Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
       bb = True
   End Sub
   Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
       Dim xx As Double = e.X - CDbl(Orgx)
       Dim yy As Double = CDbl(Orgy) - e.Y
       RaiseEvent GetPoint(xx / 10, yy / 10)
       If bb Then
           Dim g As Graphics = CreateGraphics()
           g.DrawEllipse(New Pen(Color.Black, 2), e.X, e.Y, 1, 1)
       End If

   End Sub

   Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
       bb = False
   End Sub

   Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
       e.Graphics.DrawLine(Pens.Black, 0, Orgy, Me.Width, Orgy)
       e.Graphics.DrawLine(Pens.Black, Orgx, 0, Orgx, Me.Height)
       For rx As Integer = Orgx To Me.Width Step 10
           e.Graphics.DrawLine(Pens.Black, rx, Orgy - 2, rx, Orgy + 2)
       Next
       For lx As Integer = Orgx To 0 Step -10
           e.Graphics.DrawLine(Pens.Black, lx, Orgy - 2, lx, Orgy + 2)
       Next
       For uy As Integer = Orgy To Me.Height Step 10
           e.Graphics.DrawLine(Pens.Black, Orgx - 2, uy, Orgx + 2, uy)
       Next
       For uy As Integer = Orgy To 0 Step -10
           e.Graphics.DrawLine(Pens.Black, Orgx - 2, uy, Orgx + 2, uy)
       Next
       If Xvalue <> 0 Then
           If Yvalue <> 0 Then
               Dim xx As Single = Xvalue + Orgx
               Dim yy As Single = Yvalue - Orgy
               e.Graphics.FillEllipse(Brushes.Black, xx, yy, 2, 2)
           End If
       End If

   End Sub

   Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
       Orgx = Me.Width / 2
       Orgy = Me.Height / 2
       Invalidate()
   End Sub

   Dim b As Boolean = False
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
       Xvalue = 1
       Yvalue = 1
       Invalidate()
   End Sub
End Class