تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف اجلب احداثيات الماوس بالنسبة لكونترول معين ولتكن صورة
#1
السلام عليكم ورحمة الله وبركاته 
بفضل من الله ورغبة في مني في دخول عالم الغرافيك مع الفيجوال بيسك نت .. بدأت اولى الخطوات وعملت مثال لرسم مستطيل بالاعتماد على احداثيات الماوس وتلوين الاطار والتعبئة بناء على تحديدات كيفية وقد اعتمدت على مخزوني البرمجي مما علمني اياه [b][b]الله [/b]وأهل العلم بدون معرفتي بكلاسات خاصة بالرسم وقد وفقت الى ذلك ولكن ليس كما ارغب وأحب .[/b]
والسؤال الراهن هو كيف اجلب احداثيات الماوس بالنسبة لكونترول وليكن PictureBox مثلا بحيث تبدأ الاحداثيات من الـ location الخاص بـ (PictureBox  (0:0  لأن في المثال الاحداثيات تكون لشاشة الكومبيوتر وتحايلت عليها لجلب احداثياتها في الفورم .. اتمنى من الاعضاء الذين لديهم خبرة في مجال الغرافيك فضلا وتكرما القاء نظرة على المثال ..
كما اهيب بكل من عنده روابط او فيديوهات عن الرسم بالفيجوال أن يضعها مشكورا ويجعلها الله في ميزان حسناته ليستفيد منها بقية الاعضاء ممن لهم اهتمام بهذا الجانب من البرمجة
دمتم بكل خير ... رمضان كريم والعيد على الابواب وكل عام وأنتم بخير والى الله أقرب
  


الملفات المرفقة
.rar   تجربة الرسم والالوان.rar (الحجم : 91.96 ك ب / التحميلات : 25)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة:
#2
(31-05-19, 02:59 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته 
بفضل من الله ورغبة في مني في دخول عالم الغرافيك مع الفيجوال بيسك نت .. بدأت اولى الخطوات وعملت مثال لرسم مستطيل بالاعتماد على احداثيات الماوس وتلوين الاطار والتعبئة بناء على تحديدات كيفية وقد اعتمدت على مخزوني البرمجي مما علمني اياه [b][b]الله [/b]وأهل العلم بدون معرفتي بكلاسات خاصة بالرسم وقد وفقت الى ذلك ولكن ليس كما ارغب وأحب .[/b]
والسؤال الراهن هو كيف اجلب احداثيات الماوس بالنسبة لكونترول وليكن PictureBox مثلا بحيث تبدأ الاحداثيات من الـ location الخاص بـ (PictureBox  (0:0  لأن في المثال الاحداثيات تكون لشاشة الكومبيوتر وتحايلت عليها لجلب احداثياتها في الفورم .. اتمنى من الاعضاء الذين لديهم خبرة في مجال الغرافيك فضلا وتكرما القاء نظرة على المثال ..
كما اهيب بكل من عنده روابط او فيديوهات عن الرسم بالفيجوال أن يضعها مشكورا ويجعلها الله في ميزان حسناته ليستفيد منها بقية الاعضاء ممن لهم اهتمام بهذا الجانب من البرمجة
دمتم بكل خير ... رمضان كريم والعيد على الابواب وكل عام وأنتم بخير والى الله أقرب
  


لكل كونترول حدث mousemove فيها الاحداثيات عن طريق e.location
وكل احداث الموس
mousedown
mouseup
mousewheel
mousemove

ضع picturebox وفي حد mousemove الخاص بها اجعل السطر Dim Np هكذا
Dim Np = e.Location

وعدل الكود بناء على ذلك

لا تنسى ان تشترط الضغط على الزرار اليسار
if e.button=mousebutton.left then
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , حريف برمجة
#3
السلام عليكم أخي الغالي Sami4
اشكرك جزبل الشكر على سرعة الرد والمعلومة القيمة
جعلها الله في ميزان حسناتك وضاعفها في هذا الشهر الفضيل
تقبل احترامي وتقييمي
+1














=1
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة:
#4
(31-05-19, 02:59 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته 
بفضل من الله ورغبة في مني في دخول عالم الغرافيك مع الفيجوال بيسك نت .. بدأت اولى الخطوات وعملت مثال لرسم مستطيل بالاعتماد على احداثيات الماوس وتلوين الاطار والتعبئة بناء على تحديدات كيفية وقد اعتمدت على مخزوني البرمجي مما علمني اياه [b][b]الله [/b]وأهل العلم بدون معرفتي بكلاسات خاصة بالرسم وقد وفقت الى ذلك ولكن ليس كما ارغب وأحب .[/b]
والسؤال الراهن هو كيف اجلب احداثيات الماوس بالنسبة لكونترول وليكن PictureBox مثلا بحيث تبدأ الاحداثيات من الـ location الخاص بـ (PictureBox  (0:0  لأن في المثال الاحداثيات تكون لشاشة الكومبيوتر وتحايلت عليها لجلب احداثياتها في الفورم .. اتمنى من الاعضاء الذين لديهم خبرة في مجال الغرافيك فضلا وتكرما القاء نظرة على المثال ..
كما اهيب بكل من عنده روابط او فيديوهات عن الرسم بالفيجوال أن يضعها مشكورا ويجعلها الله في ميزان حسناته ليستفيد منها بقية الاعضاء ممن لهم اهتمام بهذا الجانب من البرمجة
دمتم بكل خير ... رمضان كريم والعيد على الابواب وكل عام وأنتم بخير والى الله أقرب
  


هذه تعديلات عدلتها بناء على بعض مما في درس لاحد الاعضاء احتفظت بخواتها لي في ملف نصي

Public Class Form1

    ' احداثيات الماوس في رسم مساحة

    ' النقطة الاولى
    Dim firstPoint As Point

    ' النقطة الثانية
    Dim secondPoint As Point

    ' اون الرسم
    Dim drawColor As Color
    ' لون التعبئه
    Dim fillColor As Color


    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' اعدادات اوليه
        fillColor = RectangleShape2.FillColor
        drawColor = RectangleShape1.BorderColor
    End Sub


    ' اختيار لون الكونتور
    Private Sub RectangleShape1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles RectangleShape1.Click
        Dim colrd As New ColorDialog()
        If colrd.ShowDialog = Windows.Forms.DialogResult.OK Then
            drawColor = colrd.Color
            RectangleShape1.BorderColor = drawColor
        End If
    End Sub

    ' اختيار لون التعبئة
    Private Sub RectangleShape2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles RectangleShape2.Click
        Dim colrd As New ColorDialog()
        If colrd.ShowDialog = Windows.Forms.DialogResult.OK Then
            fillColor = colrd.Color
            RectangleShape2.FillColor = fillColor
        End If
    End Sub


    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        PictureBox1.CreateGraphics().Clear(Color.White)
    End Sub


    Private Sub PictureBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseDown
        If e.Button = Windows.Forms.MouseButtons.Left Then
            '  جلب احداثيات ضغطة الماوس الاولى 
            firstPoint = e.Location
            Label1.Text = "x :" & firstPoint.X & " " & "y :" & firstPoint.Y

        End If
    End Sub

    Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove
        If e.Button = MouseButtons.Left Then
            '  جلب احداثيات رفع الماوس
            secondPoint = e.Location
            '  جلب احداثيات  رسم المستطيل
            Dim rect As New Rectangle(firstPoint.X, firstPoint.Y, (secondPoint.X - firstPoint.X), (secondPoint.Y - firstPoint.Y))
            Label2.Text = "x :" & secondPoint.X & " " & "y :" & secondPoint.Y
            Label3.Text = "Width :" & rect.Width & " " & "Heigh :" & rect.Height

            ' التعبئه اولا
            Dim Sbrush As New SolidBrush(fillColor)
            PictureBox1.CreateGraphics().FillRectangle(Sbrush, rect)

            ' الاطار ثانيا
            Dim PLinePen As New Pen(drawColor, Nmr_StrokPen.Value)
            PictureBox1.CreateGraphics().DrawRectangle(PLinePen, rect)

        End If
    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub

End Class

نست ان اذكر ان تضيف picturebox وتضع له اطار في الخصائص fixedsingle وذلك قبل نسخ الكود
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , حريف برمجة
#5
شكرا لك مرة أخرى على تعاونك
دمت بألف خير
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة:
#6
(31-05-19, 02:59 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته 
بفضل من الله ورغبة في مني في دخول عالم الغرافيك مع الفيجوال بيسك نت .. بدأت اولى الخطوات وعملت مثال لرسم مستطيل بالاعتماد على احداثيات الماوس وتلوين الاطار والتعبئة بناء على تحديدات كيفية وقد اعتمدت على مخزوني البرمجي مما علمني اياه [b][b]الله [/b]وأهل العلم بدون معرفتي بكلاسات خاصة بالرسم وقد وفقت الى ذلك ولكن ليس كما ارغب وأحب .[/b]
والسؤال الراهن هو كيف اجلب احداثيات الماوس بالنسبة لكونترول وليكن PictureBox مثلا بحيث تبدأ الاحداثيات من الـ location الخاص بـ (PictureBox  (0:0  لأن في المثال الاحداثيات تكون لشاشة الكومبيوتر وتحايلت عليها لجلب احداثياتها في الفورم .. اتمنى من الاعضاء الذين لديهم خبرة في مجال الغرافيك فضلا وتكرما القاء نظرة على المثال ..
كما اهيب بكل من عنده روابط او فيديوهات عن الرسم بالفيجوال أن يضعها مشكورا ويجعلها الله في ميزان حسناته ليستفيد منها بقية الاعضاء ممن لهم اهتمام بهذا الجانب من البرمجة
دمتم بكل خير ... رمضان كريم والعيد على الابواب وكل عام وأنتم بخير والى الله أقرب
  


الكود السابق ان الرسم ليس ثابت فلو قمن بتصغير الفورم خارج اعادته لن تجد الرسم

لهذا لابد من استخدام الحدث paint 

هذا تعديل الحدث mousrmove مع اضاف الحدث paint

    Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove
        If e.Button = MouseButtons.Left Then
            '  جلب احداثيات رفع الماوس
            secondPoint = e.Location
            Label2.Text = "x :" & secondPoint.X & " " & "y :" & secondPoint.Y

            PictureBox1.Invalidate()

        End If
    End Sub

    Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
        '  جلب احداثيات  رسم المستطيل
        Dim rect As New Rectangle(firstPoint.X, firstPoint.Y, (secondPoint.X - firstPoint.X), (secondPoint.Y - firstPoint.Y))
        Label3.Text = "Width :" & rect.Width & " " & "Heigh :" & rect.Height

        ' التعبئه اولا
        Dim Sbrush As New SolidBrush(fillColor)
        e.Graphics.FillRectangle(Sbrush, rect)

        ' الاطار ثانيا
        Dim PLinePen As New Pen(drawColor, Nmr_StrokPen.Value)
        e.Graphics.DrawRectangle(PLinePen, rect)
    End Sub
الرد }}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تعديل كود ارسال صورة الى الواتس new_programer 2 114 21-03-24, 10:07 PM
آخر رد: new_programer
  تعديل طول حقل معين في جميع جداول القاعدة atefkhalf2004 1 97 09-03-24, 03:17 AM
آخر رد: atefkhalf2004
Lightbulb [VB.NET] إطهار الصورة بمقاس معين في DataGridView أبو خالد الشكري 2 323 14-12-23, 03:01 PM
آخر رد: أبو خالد الشكري
  كيف اجعل البرنامج في بداية الشهر ينفذ حدث معين بالاصح اريد البرنامج في تاريخ واحد من Adel27213 3 484 05-11-23, 01:45 AM
آخر رد: justforit
  كيفية جمع قيمة على تاريخ معين واستنتاج تاريخ أخر Ahmed.vb 1 317 02-11-23, 03:52 AM
آخر رد: Taha Okla
  إجبار المستخدم على إدخال عدد معين من الأرقام Ahmed.vb 6 656 20-10-23, 10:25 AM
آخر رد: atefkhalf2004
  كود تغيير قيمة تكست بوكس فى تاريخ معين Ahmed.vb 2 909 11-10-23, 10:35 PM
آخر رد: aljzazy
  حفظ المشروع بامتداد معين غير معروف مسبقا Abo Louay 0 262 29-09-23, 02:55 AM
آخر رد: Abo Louay
  عندما اقوم بالاستعلام عن تاريخ معين بواسطة SELECT لايقوم بتحديد نفس تاريخ اليوم moh61 1 403 13-08-23, 01:06 PM
آخر رد: تركي الحلواني
  اريد البحث عن ID داخل ListView من قاعدة بيانات لكل صنف معين moh61 6 696 26-07-23, 05:47 AM
آخر رد: Taha Okla

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم