منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : Right to left layout
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وكل عام وانتم بخير
عملت هذا الاجراء وذلك لتحريك اداة button  داخل الفورم
كود :
   Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
       X = Control.MousePosition.X - Button1.Location.X
       Y = Control.MousePosition.Y - Button1.Location.Y
   End Sub

   Private Sub Button1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove
       Dim NewPoint As New Point
       If e.Button = MouseButtons.Left Then
           NewPoint = Control.MousePosition
           NewPoint.X -= (X)
           NewPoint.Y -= (Y)
           Button1.Location = NewPoint
       End If
   End Sub


ولكن في حال غيرت خصائص الفورم الى ( Right  to left layout ) = True
اجد ان الكود السابق يتلخبط

هل من حل


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

حدد باكثر دقة ما الذي يتلخبط
على العموم خد بعين الاعتبار عند عكس اتجاه الفورم اليمين يصبح يسار واليسار يصبح يمين للكود البرمجي
المتغير Y اتركه كما هو اما المتغير X فاجعله يزيد ولا ينقص

كود :
NewPoint.X += (X)
اولا شكرا على مرورك

بالنسبة للمشكلة
عند ( الامساك ) بزر ال Button  وتوجيهه للمين يذهب لليسار والعكس صحيح  
علما انه لا يوجد مشكلة في Up  and Down
رغم اني حاولت في زيادة ونقص X
لا مشكلة فقط اعتقدت ان الذي يتلخبط ربما الكود نفسه وليس ناتجه

على العموم جرب هذا الكود


كود :
Dim Offset As Point

   Private Sub SimpleButton3_MouseDown(sender As Object, e As MouseEventArgs) Handles Button1.MouseDown
       Offset = New Point(-e.X, -e.Y)
   End Sub

   Private Sub SimpleButton3_MouseMove(sender As Object, e As MouseEventArgs) Handles Button1.MouseMove
       
       If e.Button = Windows.Forms.MouseButtons.Left Then
           Dim Pos As Point = Me.PointToClient(MousePosition)
           Pos.Offset(Offset.X, Offset.Y)
           Button1.Location = Pos
       End If


   End Sub
10000 شكر  ... تم حل المشكلة
ما شاء الله تبارك الله عليك