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

نسخة كاملة : تحريك النافذة وهي في وضعية none !
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع : عقرب الساعة


بسم الله الرحمن الرحيم
والصلاة والسلام على أشرف الأنبياء والمرسلين سيدنا محمد وعلى آله وصحبه أجميعين ومن تبعهم بإحسان إلى يوم الدين
حرصا من على مشاركة العلم لينتفع به جميع إخواني في المنتدى وغيره فأضع لكم هذا الموضوع وإن كان ليس بجديد أو كان بسيط .
الموضوع عبارة عن تحريك النافذة وهو في وضعية none ولمن لايعرف هذه صورته وهو في هذه الوضعية


نعم هذه الوضعية جميلة ولكن من عيوبها أنك لا تستطيع تحريك النافذة ولا حتى تكبيرها بإستخدام الحواف ولكن بإذن الله بعد متابعة الموضوع ستستطيع تكبيرها وأيضا تحريها ! وسنعوض أزرار التكبير والتصغير والإغلاق لتسطيع الإبداع في الشريط وعمل ماتسطيع مثالنا البسيط سيكون بعد تصميمه كالتالي
ملاحظة سيأتي في الشرح تغيير خصائص بعض الأدوات مالم أذكره لا تغير فيه أي أجعله قيمته الإفتراضية
طبعا أنا هنا جعلت المثال عند تحريكه تسحب النافذة بإمكانكم جعل التحريك كما في windows من شريط الإغلاق ولكني فضلت في المثال جعله في النافذة كاملة
قبل أن نبدأ سنصمم مايلي
يمكنك تحريك النافذة
يمكنك تكبير النافذة من الأطراف
سنصمم شريط الإغلاق والتكبير والتصغير بأنفسنا
بسم الله نبدأ
أولا غير خصائص form1 إلى مايلي :
خاصية text إلى ماتريد
خاصية FormBorderStyle إلى none


ثانيا: أضف 2 من أداة timer
(timer1,timer2)
غير من خصائص timer1 خاصية Interval أجعلها 1


أضف أداة panel وأجعلها في أخر النافذة "form" كما في الصورة التالية

وغير من خصائصها
خاصية BackColor أجعلها Transparent
خاصية Anchor أجعلها في اليمين والأسفل

خاصية Cursor أجعلها SizeNWSE هل عرفت من شكلها لماذا غيرناها ؟


أضف ثلاثة أزرار "button"
(button1,button2,button3")
ويغر حجمهم كما تريد حسب الصورة التي ستضعها لكل منهم
وغير من خصائصهم جميعا مايلي
خاصية text أجعلها فارغة
خاصية FlatStyle أجعلها Popup

خاصية BackgroundImageLayout أجعلها Stretch لتملئ الصورة الزر


خاصية BackgroundImage أختر ماتريد
خاصية Anchor أجعلها في الأعلى واليمين
[SIZE=2] [/SIZE]

أنا أختر هذه الصور لتمثيل الأزرار

الأن في زر الإغلاق ضع الكود التالي

كود :
[color=#000000][COLOR=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]

في زر التكبير والإعادة إلى وضع الإفتراضي

كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]If [/color][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]WindowState [/color][color=#007700]= [/color][color=#0000bb]FormWindowState[/color][color=#007700].[/color][COLOR=#0000bb]Normal Then
Me[/COLOR][color=#007700].[/color][color=#0000bb]WindowState [/color][color=#007700]= [/color][color=#0000bb]FormWindowState[/color][color=#007700].[/color][COLOR=#0000bb]Maximized
[/COLOR][COLOR=#007700]Else
[/COLOR][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]WindowState [/color][color=#007700]= [/color][color=#0000bb]FormWindowState[/color][color=#007700].[/color][COLOR=#0000bb]Normal
End [/COLOR][COLOR=#007700]If  
[/COLOR][color=#0000bb][/color][/COLOR]

في زر التصغير إلى شريط المهام

كود :
[color=#000000][COLOR=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]WindowState [/color][color=#007700]= [/color][color=#0000bb]FormWindowState[/color][color=#007700].[/color][COLOR=#0000bb]Minimized  
[/COLOR][/COLOR]

ثالثا: نأتي إلى الأكواد
عند الضغط على النافذة مرتين أعلى صفحة الأكواد ستجد عبارة

كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]Public Class [/color][COLOR=#0000bb]Form1  
[/COLOR][/COLOR]

بعدها أكتب الكود التالي

كود :
[color=#000000][COLOR=#0000bb]Dim move1 [/color][color=#007700]As New [/color][color=#0000bb]Point[/color][color=#007700]([/color][color=#0000bb]0[/color][color=#007700], [/color][color=#0000bb]0[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim move2 [/color][color=#007700]As New [/color][color=#0000bb]Point[/color][color=#007700]([/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]Cursor[/color][color=#007700].[/color][color=#0000bb]Position[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim size1[/color][color=#007700], [/color][color=#0000bb]size2 [/color][color=#007700]As New [/color][color=#0000bb]Point[/color][color=#007700]([/color][color=#0000bb]0[/color][color=#007700], [/color][color=#0000bb]0[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

ثم ضع السطر التالي

كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]Private [/color][color=#0000bb]Sub si[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]size1 [/color][color=#007700]= [/color][color=#0000bb]Cursor[/color][color=#007700].[/color][COLOR=#0000bb]Position
size2 [/COLOR][color=#007700]= [/color][color=#0000bb]Me[/color][color=#007700].[/color][COLOR=#0000bb]Size
End Sub  
[/COLOR][/COLOR]

ثم ضع السطر التالي

كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]Private [/color][color=#0000bb]Sub mov[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]move1 [/color][color=#007700]= [/color][color=#0000bb]Me[/color][color=#007700].[/color][COLOR=#0000bb]Location
move2 [/COLOR][color=#007700]= [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]Cursor[/color][color=#007700].[/color][COLOR=#0000bb]Position
End Sub  
[/COLOR][/COLOR]

لتصبح الأكواد كما في الصورة التالية


الأن في timer1 ضع الكود التالي

كود :
[color=#000000][COLOR=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]Location [/color][color=#007700]= [/color][color=#0000bb]move1 [/color][color=#007700]- [/color][color=#0000bb]move2 [/color][color=#007700]+ [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]Cursor[/color][color=#007700].[/color][COLOR=#0000bb]Position
mov[/COLOR][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]

في timer2 ضع الكود التالي

كود :
[color=#000000][COLOR=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]Size [/color][color=#007700]= [/color][color=#0000bb]size2 [/color][color=#007700]- [/color][color=#0000bb]size1 [/color][color=#007700]+ [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]Cursor[/color][color=#007700].[/color][COLOR=#0000bb]Position
si[/COLOR][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]

الأن في form1 في حدث MouseDown ضع الكود التالي

كود :
[color=#000000][COLOR=#0000bb]Timer1[/color][color=#007700].[/color][color=#0000bb]Start[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]mov[/color][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]

في form1 في حدث Mouseup ضع الكود التالي

كود :
[color=#000000][COLOR=#0000bb]Timer1[/color][color=#007700].[/color][color=#0000bb]Stop[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]mov[/color][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]

في أدا ةpanel1 في حدث MouseDown ضع الكود التالي

كود :
[color=#000000][COLOR=#0000bb]Timer2[/color][color=#007700].[/color][color=#0000bb]Start[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]si[/color][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]

في أداة panel1 في حدث Mouseup ضع الكود التالي

كود :
[color=#000000][COLOR=#0000bb]Timer2[/color][color=#007700].[/color][color=#0000bb]Stop[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]si[/color][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]

الأن إذا أردنا مثلا وضع أداة panel وجعلها هي عنصر تحريك النافذة (form) فقط ضع أكواد MouseDown في form1 في نفس الحدث في الأداة التي تريدها ونفس الشيئ في حدث Mouseup للأداة
المثال ب2008 و2010
لمشاهدة فيديو الشرح
أضغط هنا
الأن لتحميل المثال بvb2010
فضلا أضغط هنا
لتحميل المثال بvb2008
فضلا أضغط هنا

تحياتي لكم وأدعوا لي بالتوفيق