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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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=32533)



مساعدة في عرض اداه مخصصه من اليمين الى اليسار. - Rabeea Qbaha - 14-12-19

السلام عليكم 

انا اقوم باستخدام اداه مخصصة وهي تقوم بفتح ال forms على شكل تاب كونترول وهذة هي الاداه:


عرض الاداة من اليسار الى اليمين ولم استطع تغير الاتجاه فيها .
اريد المساعدة بتغير الاتجاه من اليمين الى اليسار.

او اداه مشابهة لهذة تقوم بنفس العمل 

شكرا 



RE: مساعدة في عرض اداه مخصصه من اليمين الى اليسار. - 3booody - 14-12-19

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

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


على العموم من الصورة يبدو ان الاداة هي TabControl مطورة
ابحث عن الخاصيتين RightToLeft  و  RightToLeftLayout  اذا كانتا موجودتان غير الاولى الى Yes والثانية الى True يعني الاثنان معآ وان شاء الله تنجح عندك واعتذر لم ارى الاداة مجرد محاولة مني

عملتلك كود ايضآ ل TabPage مطورة ممكن اذا ما استفدت من الاداة التي لديك تعدل على هذه الاداة
هذا الكود كامل


كود :
Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       TabControl1.RightToLeft = Windows.Forms.RightToLeft.Yes
       TabControl1.RightToLeftLayout = True
       Dim frm As New Form
       Dim frm2 As New Form2

       frm.Text = "Form1" : frm2.Text = "Form2"

       Dim Tpage As New MyTabPage(TabControl1, frm)
       Dim Tpage2 As New MyTabPage(TabControl1, Form2)
   End Sub
   
End Class

Public Class MyTabPage
   Inherits TabPage

   Protected Img As New ImageList


   Public Sub New(ByVal Tab As TabControl, ByVal _form As Form)
       With _form
           .TopMost = False
           .TopLevel = False
           .FormBorderStyle = FormBorderStyle.None
           .Dock = DockStyle.Fill
       End With

       '''''''''''''''
       Img.Images.Add(_form.Icon)
       Text = _form.Text
       TAB.ImageList = Img
       ImageIndex = 0
       Controls.Add(_form)
       Tab.TabPages.Add(Me)
   End Sub
End Class

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


RE: مساعدة في عرض اداه مخصصه من اليمين الى اليسار. - Rabeea Qbaha - 15-12-19

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


RE: مساعدة في عرض اداه مخصصه من اليمين الى اليسار. - محمد كريّم - 15-12-19

كانت لي تجارب قديمة مع تخصيص بعض الأدوات (winforms و javascript) وبصفة عامة مع تغيير الاتجاهات من اليسار الى اليمين
هذه المعضلة رغم أنها صعبة ولكني أجد فيها تحدي ممتع

طبعا المعروف ان كل القياسات في التصميم تبدأ من النقطة 0  في البعدين x y  يعني في حافة الشاشة اليسرى العلوية
لهذا دائما ركز على هذه الحقيقة

عموما بالنسبة لأداتك فبعد جهد جهيد يبدو أنني نجحت مع بعض التشوهات التي قد تحدث عند تغيير حجم الفورم والسبب من الأداة نفسها

في ملف الأداة TabControl.vb
ابحث عن الدالة ShowTab واستبدلها بهذا التعديل

كود :
   Private Sub ShowTab(ByVal i As Integer)
       Items(i).Visible = Items(i).TabVisible
       'If Items(0).Width <> 1 Then Items(i).Left = Items(i).TabLeft
       If Items(0).Width <> 1 Then Items(i).Left = Parent.Width - Items(i).TabLeft - Items(i).Width
   End Sub


قد يلزم عمل Rebuild للمشروع أو حذف الأداة وادراجها في الفورم بعد التعديل عيها

أتمنى أن يكون هذا التعديل مفيد لك


RE: مساعدة في عرض اداه مخصصه من اليمين الى اليسار. - Rabeea Qbaha - 16-12-19

شكرا جزيلا صديقي 

زاد الله علما.