تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
السؤال بسيط
#1
السلام عليكم
اريد كود يجعل الفورم تتحرك من اليمين الى اليسار


بمعني لو عملت ذيادة بالعرض تتحرك من اليمين الى اليسار
>>>>>>>>
الرد
تم الشكر بواسطة: ابو ليلى
#2
السلام عليكم ورحمة الله وبركاته
اخي الكريم للعلم ان اتجاه زيادة عرض الفورم او الادوات هو من اليسار الى اليمين لان الزيادة نحو اليمين والنقصان نحو اليسار
ما العمل اذا اردنا زيادة بانل مثلا باتجاه اليمين؟
هنا توجد شبه حيلة وهي اننا ننشء بانل بحجم معين ونقوم بتحديد تموضعه بحيث يختفي منه قسم من الجانب الايمن واذا اردنا (مجازا تكبيره)
ببساطة نغير تموضعه بحيث يظهر كاملا بالاستعانة ب Timer فيبدو وكأنه ازداد باتجاه اليمين هذا ما لدي ان احببت التوسع في معرفة الفكرة
شاهد هذا الرابظ
https://www.youtube.com/watch?v=BLEUynKYVe8&t=997s
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: new_programer , معاند الحظ , ابو ليلى
#3
بارك الله فيك وجزاك خيرا

شكراً جدآ على المعلومات القيمة

انا فعلا حاولت لكن مش قادر اتوصل الكود
لكن انا كان عندى كود بفجوال بيسك٦
وكان يعمل تمام وكمان كنت بتحكم فيه بسهولة وزي مانا عايز
لكن للاسف لم تعثر عليه
المفروض الدون نت يكون فيه إمكانية افضل

الفكرة عايز اعمل فورم لمفكرة مثلا

تكون جهة يمين الشاشة وتكون مغلقة
وعند مرور الماوس تفتح
الرد
تم الشكر بواسطة: ابو ليلى
#4
وعليك السلام ورحمة الله وبركاته

مع الشكر للأخ ابراهيم

اخي الكريم عنوان سؤالك "السؤال بسيط" وقد تكون محقا لكنه غير واضح 
واعتقد ان برنامجك يحتوي على فورم رئيسي يعمل كحاضنه للفورم  الذي تريد تغيير عرضه 
فان كان كذلك فيمكنك ان تعدل الخاصيتين التاليتين
 خاصية  RightToLeft  = Yes للفورم الرئيسي
خاصية RightToLeftLayout = True للفورم الرئيسي

الان عند تشغيل برنامجك سيضهر الفورم الرئيسي وبداخله الابناء متموضعين على جهة اليمين وسيكون تغيير العرض لاي فورم ابن 
بسحب الناحية اليسرى >>>>> الى جهة اليسار

ان كان هذا هو ماتريد فالحمدلله لكني اشك في هذا
واذا لم يكن ماتريد فارفق الكود الذي كنت تستعمله في فيجوال 6 

او اعد ضياغة سؤالك ليكون اكثر بساطة

الرد
تم الشكر بواسطة: ابو ليلى
#5
السلام عليكم ورحمة الله وبركاته
اخي الكريم بالنسبة لسؤالك عن تحريك البانل من اليمين الى اليسار
في هذا المثال الفكرة هي اننا نحتاج الى تايمر عدد 2 واحد لتمديد البانل نحو اليسار عند دخول الماوس
والثاني لتقليص البانل نحو اليمين عند خروج الماوس
الفكرة تقوم على اننا حينما نزيد في عرض البانل فان ذلك سيكون باتجاه اليمين ونحن نريد تثبيت الطرف اليميني
لذا سنقوم بتغيير تموضع البانل نحو اليسار بنفس مقدار زيادة عرض البانل مع كل تك من التايمر
وبهذه الطريقة نشاهد ان البانل يكبر من اليمين الى اليسار
وفي خروج الماوس يحدث العكس
اليك المثال وارجو ان يكون مفيدا لك


الملفات المرفقة
.zip   move panel.zip (الحجم : 133.49 ك ب / التحميلات : 8)
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: معاند الحظ , new_programer , ابو ليلى
#6
(03-06-20, 04:35 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم بالنسبة لسؤالك عن تحريك البانل من اليمين الى اليسار
في هذا المثال الفكرة هي اننا نحتاج الى تايمر عدد 2 واحد لتمديد البانل نحو اليسار عند دخول الماوس
والثاني لتقليص البانل نحو اليمين عند خروج الماوس
الفكرة تقوم على اننا حينما نزيد في عرض البانل فان ذلك سيكون باتجاه اليمين ونحن نريد تثبيت الطرف اليميني
لذا سنقوم بتغيير تموضع البانل نحو اليسار بنفس مقدار زيادة عرض البانل مع كل تك من التايمر
وبهذه الطريقة نشاهد ان البانل يكبر من اليمين الى اليسار
وفي خروج الماوس يحدث العكس
اليك المثال وارجو ان يكون مفيدا لك

تسلم اخي على المجهود

لكن انا اريد الفورم
عايز اعمل قائمة جانبية على سطح المكتب
الرد
تم الشكر بواسطة: معاند الحظ , ابو ليلى
#7
السلام عليك اخوي

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

End Class

الرد
تم الشكر بواسطة: ابو ليلى



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


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