01-06-20, 01:45 AM (آخر تعديل لهذه المشاركة : 01-06-20, 02:05 AM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته
اخي الكريم للعلم ان اتجاه زيادة عرض الفورم او الادوات هو من اليسار الى اليمين لان الزيادة نحو اليمين والنقصان نحو اليسار
ما العمل اذا اردنا زيادة بانل مثلا باتجاه اليمين؟
هنا توجد شبه حيلة وهي اننا ننشء بانل بحجم معين ونقوم بتحديد تموضعه بحيث يختفي منه قسم من الجانب الايمن واذا اردنا (مجازا تكبيره)
ببساطة نغير تموضعه بحيث يظهر كاملا بالاستعانة ب Timer فيبدو وكأنه ازداد باتجاه اليمين هذا ما لدي ان احببت التوسع في معرفة الفكرة
شاهد هذا الرابظ https://www.youtube.com/watch?v=BLEUynKYVe8&t=997s
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
انا فعلا حاولت لكن مش قادر اتوصل الكود
لكن انا كان عندى كود بفجوال بيسك٦
وكان يعمل تمام وكمان كنت بتحكم فيه بسهولة وزي مانا عايز
لكن للاسف لم تعثر عليه
المفروض الدون نت يكون فيه إمكانية افضل
الفكرة عايز اعمل فورم لمفكرة مثلا
تكون جهة يمين الشاشة وتكون مغلقة
وعند مرور الماوس تفتح
02-06-20, 04:03 AM (آخر تعديل لهذه المشاركة : 02-06-20, 04:05 AM {2} بواسطة معاند الحظ.)
وعليك السلام ورحمة الله وبركاته
مع الشكر للأخ ابراهيم
اخي الكريم عنوان سؤالك "السؤال بسيط" وقد تكون محقا لكنه غير واضح
واعتقد ان برنامجك يحتوي على فورم رئيسي يعمل كحاضنه للفورم الذي تريد تغيير عرضه
فان كان كذلك فيمكنك ان تعدل الخاصيتين التاليتين
خاصية RightToLeft = Yes للفورم الرئيسي
خاصية RightToLeftLayout = True للفورم الرئيسي
الان عند تشغيل برنامجك سيضهر الفورم الرئيسي وبداخله الابناء متموضعين على جهة اليمين وسيكون تغيير العرض لاي فورم ابن
بسحب الناحية اليسرى >>>>> الى جهة اليسار
ان كان هذا هو ماتريد فالحمدلله لكني اشك في هذا
واذا لم يكن ماتريد فارفق الكود الذي كنت تستعمله في فيجوال 6
السلام عليكم ورحمة الله وبركاته اخي الكريم بالنسبة لسؤالك عن تحريك البانل من اليمين الى اليسار في هذا المثال الفكرة هي اننا نحتاج الى تايمر عدد 2 واحد لتمديد البانل نحو اليسار عند دخول الماوس والثاني لتقليص البانل نحو اليمين عند خروج الماوس الفكرة تقوم على اننا حينما نزيد في عرض البانل فان ذلك سيكون باتجاه اليمين ونحن نريد تثبيت الطرف اليميني لذا سنقوم بتغيير تموضع البانل نحو اليسار بنفس مقدار زيادة عرض البانل مع كل تك من التايمر وبهذه الطريقة نشاهد ان البانل يكبر من اليمين الى اليسار وفي خروج الماوس يحدث العكس اليك المثال وارجو ان يكون مفيدا لك
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
(03-06-20, 04:35 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته اخي الكريم بالنسبة لسؤالك عن تحريك البانل من اليمين الى اليسار في هذا المثال الفكرة هي اننا نحتاج الى تايمر عدد 2 واحد لتمديد البانل نحو اليسار عند دخول الماوس والثاني لتقليص البانل نحو اليمين عند خروج الماوس الفكرة تقوم على اننا حينما نزيد في عرض البانل فان ذلك سيكون باتجاه اليمين ونحن نريد تثبيت الطرف اليميني لذا سنقوم بتغيير تموضع البانل نحو اليسار بنفس مقدار زيادة عرض البانل مع كل تك من التايمر وبهذه الطريقة نشاهد ان البانل يكبر من اليمين الى اليسار وفي خروج الماوس يحدث العكس اليك المثال وارجو ان يكون مفيدا لك
تسلم اخي على المجهود
لكن انا اريد الفورم
عايز اعمل قائمة جانبية على سطح المكتب
ان شاء الله الكود التالي يكون هو اللي تحتاجه
الكود يقوم بوضع نافذة البرنامج Form1 على يمين شاشة سطح المكتب وعند الضغط بزر الفارة عليها يزداد حجمها من 100 الى 500 وهي القيم اللي انا حددتها
وعند خروج الفارة يرجع حجم النافذة (العرض) الى 100
كود :
Imports System.Threading
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.Height = Screen.PrimaryScreen.Bounds.Height
Me.Width = 100
Me.Left = Screen.PrimaryScreen.Bounds.Right - Me.Width
Me.Top = 0
End Sub
Private Sub Form1_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
While Me.Width < 500
Thread.Sleep(200)
Me.Width += 200
Me.Left -= 200
End While
End Sub
Private Sub Form1_MouseLeave(sender As Object, e As System.EventArgs) Handles Me.MouseLeave
Me.Width = 100
Me.Left = Screen.PrimaryScreen.Bounds.Right - Me.Width
End Sub