تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] تحريك النموذج ؟
#1
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

قمت بتصميم نمودج وقمت بجعل خاصية
FormBorderstyle = None

ثم قمت بوضع Pannel في اعلى النمودج

سؤالي :
كيف يمكن عند الضغط بالماوس على ال Pannel التي في اعلى، ان اتمكن من تحريك النموذج .


والف شكر


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#2
نعم بهذه الطريقة

PHP كود :
Dim Drag As Boolean
    Dim MouseX 
As Integer
    Dim MouseY 
As Integer

    
Private Sub MainPanel_MouseDown(ByVal sender As System.ObjectByVal e As System.Windows.Forms.MouseEventArgsHandles MainPanel.MouseDown
        Drag 
True
        MouseX 
Cursor.Position.Me.Left
        MouseY 
Cursor.Position.Me.Top
    End Sub

    
Private Sub MainPanel_MouseMove(ByVal sender As System.ObjectByVal e As System.Windows.Forms.MouseEventArgsHandles MainPanel.MouseMove
        
If (DragThen
            Me
.Left Cursor.Position.MouseX
            Me
.Top Cursor.Position.MouseY
        End 
If
    
End Sub

    
Private Sub MainPanel_MouseUp(ByVal sender As System.ObjectByVal e As System.Windows.Forms.MouseEventArgsHandles MainPanel.MouseUp
        Drag 
False
    End Sub 
موفق
الرد }}}
تم الشكر بواسطة: kafi2030 , 3booody
#3
السلام عليكم

شكرا اخي
الشاكي لله على اجابتك

تم تجربة الكود ضمن مثال بسيط، ووجدت ان الحركة تكون غير منطقية على الاطلاق، فعندما اريده ان يتحرك على اليمين يتحرك على اليسار......والحركة غير انسابية، كما هو المعتاد من النموذج العادي

حاولت التعديل قليلا بالكود بعكس الاشارة ....فلم اوفق

ارجو اعادة النظر بالكود

والف شكر

الرد }}}
تم الشكر بواسطة:
#4
كود :
Dim b As Boolean = False
    Dim x, y As Short
    Private Sub Panel1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown
        x = e.X
        y = e.Y
        b = True
    End Sub

    Private Sub Panel1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
        If b Then
            Me.Left = MousePosition.X - x
            Me.Top = MousePosition.Y - y
        End If
    End Sub

    Private Sub Panel1_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseUp
        b = False
    End Sub
الرد }}}
تم الشكر بواسطة: الشاكي لله , kafi2030
#5
اخي العزيز المبدأ بسيط
اي يجب عليك اولاً اخذ قياسات ال panel وحسابحا من حجم الفورم ومعرفة موقع الماوس x,y

والعملية مشروحة بالكود السابق
واذا استعصى عليك الامر راسلني Smile

تحياتي للجميع
ابو سامي
الرد }}}
تم الشكر بواسطة:
#6
(24-11-13, 01:00 AM)kafi2030 كتب : السلام عليكم

شكرا اخي
الشاكي لله على اجابتك

تم تجربة الكود ضمن مثال بسيط، ووجدت ان الحركة تكون غير منطقية على الاطلاق، فعندما اريده ان يتحرك على اليمين يتحرك على اليسار......والحركة غير انسابية، كما هو المعتاد من النموذج العادي

حاولت التعديل قليلا بالكود بعكس الاشارة ....فلم اوفق

ارجو اعادة النظر بالكود

والف شكر


شي غريب والله

انا استعملت هذا الكود في اغلب برامجي ويعمل 100%

ربما ان المشكلة حدثت بسبب انك استعملت MDI Form

والله اعلم
الرد }}}
تم الشكر بواسطة: kafi2030
#7
السلام عليكم
الف شكر اخواني الكرام على مشاركاتكم

إقتباس :ربما ان المشكلة حدثت بسبب انك استعملت MDI Form

نعم بعد التجريب، تبين ان حركة النموذج تكون رائعة ومنطقية، عندما لا يكون النموذج MDI

ولكن ما الحل ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
اذ ان معظم البرامج تكون النماذج فيها MDI


ارجو المساعدة بالحل نظرا للاهمية القصوى

تم ارفاق مثال
والف شكر

[/b]


الملفات المرفقة صورة/صور
   

.zip   WindowsApplication1.zip (الحجم : 90.46 ك ب / التحميلات : 140)
الرد }}}
تم الشكر بواسطة:
#8
جربت على MDI

والنتيجة تمام 100%

شوف الصورة كيف احرك بانسيابية




شكلي بنزل مشروعك وبشوف ويش قصته


كشفت المشكلة

لأنك استعملت RightToLeft

لهكذا لااحب استعمال اللغة العربية في برامجي لمثل هذه الاسباب

المهم حاولت في الكود وضبط 100%
PHP كود :
Dim Drag As Boolean
    Dim MouseX 
As Integer
    Dim MouseY 
As Integer

    
Private Sub Panel1_MouseDown(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgsHandles Panel1.MouseDown
        Drag 
True
        MouseX 
Me.PointToClient(Cursor.Position).X
        MouseY 
Me.PointToClient(Cursor.Position).Y
    End Sub

    
Private Sub Panel1_MouseMove(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgsHandles Panel1.MouseMove
        
If (DragThen
            Me
.Left += (Me.PointToClient(Cursor.Position).MouseX)
            
Me.Top += (Me.PointToClient(Cursor.Position).MouseY)
        
End If
    
End Sub

    
Private Sub Panel1_MouseUp(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgsHandles Panel1.MouseUp
        Drag 
False
    End Sub 
الرد }}}
تم الشكر بواسطة: kafi2030
#9
الــــــــــــف الــــــــــف شكــــــــــــــــــر

اخــــــي /
الشـــــــــــــــــــــاكي للـــــــــــــــــــــــــــه


على ســـــــرعة ودقة الاجابة
بارك الله فيك
الرد }}}
تم الشكر بواسطة:
#10
السلام عليكم...

إذا سمحتم لي... أنا أستخدم الكود التالي، و هو يعمل مع أي Form و لا يتأثر بالخاصية RighrToLeft أو RightToLeftLayout لأنه يستخدم الإحداثيات الداخلية للـ Panel:

كود :
Private StartX, StartY As Integer

Private Sub Panel1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown
    If e.Button = MouseButtons.Left Then
        StartX = e.X
        StartY = e.Y
    End If
End Sub

Private Sub Panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
    If e.Button = MouseButtons.Left Then
        Me.Left += e.X - StartX
        Me.Top += e.Y - StartY
    End If
End Sub

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة: الشاكي لله


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال في تحريك التحديد في datagrideview maher_haddaf 3 439 23-10-23, 08:27 AM
آخر رد: أبو خالد الشكري
  كود تحريك الادوات داخل الفورم مع حفظ الترتيب حماده ممدوح البحيرى 0 296 17-12-22, 02:11 PM
آخر رد: حماده ممدوح البحيرى
  حجم النموذج mohamedassim 3 571 21-09-22, 10:06 AM
آخر رد: Taha Okla
  تحريك الأدوات على التقرير فى وقت التشغيل ! dr.programming 5 977 11-07-22, 05:08 PM
آخر رد: asemshahen5
  تحريك البكتربوكس kebboud 0 629 03-12-21, 10:11 PM
آخر رد: kebboud
  [سؤال] كود تحريك الفورم من اي نقطه حسن الجلب 1 874 26-08-21, 05:44 PM
آخر رد: asemshahen5
  الرجوع للفورم الرئيسيةعند عدم تحريك الماوس لمدة معينة جيولوجي مبتدئ 7 1,773 25-07-21, 07:33 PM
آخر رد: ابراهيم ايبو
  اريد تحريك الجمل أو الشرائح واحدة تلو الاخرى hamed.34552 0 1,143 25-05-20, 03:16 PM
آخر رد: hamed.34552
  مطلوب كود تحريك الادوات اثناء التشغيل bilgacim 6 2,333 08-05-20, 03:48 AM
آخر رد: bilgacim
  حل مشكلة عدم تحريك الفورم developermedo111 1 1,238 28-04-20, 12:27 AM
آخر رد: aljzazy

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


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