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

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



Right to left layout - Mtaktak - 19-04-22

السلام عليكم ورحمة الله وكل عام وانتم بخير
عملت هذا الاجراء وذلك لتحريك اداة 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
اجد ان الكود السابق يتلخبط

هل من حل


ولكم الشكر


RE: Right to left layout - ابو محمد محمد محمد - 20-04-22

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

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

كود :
NewPoint.X += (X)



RE: Right to left layout - Mtaktak - 20-04-22

اولا شكرا على مرورك

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


RE: Right to left layout - ابو محمد محمد محمد - 20-04-22

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

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


كود :
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



RE: Right to left layout - Mtaktak - 20-04-22

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