• 0
messidona11

خصائص تصميم الفورم

سؤال

 أهمّ خصائص النموذج في وضع التصميم:

لقد رأيت بالفعل كل أنواع النماذج أثناء تعاملك مع الويندوز.. فمثلا، أشرطة الأدوات الحرّة Floating Toolbars ما هي إلا نماذج ذات أشرطة عناوين ضيّقة.. كذلك فإنّ مربعات الحوار التي تعرض رسائل التحذير أو تطلب منك اختيار ملف ما، هي أيضا نماذج.. ولكن لماذا تبدو هذه النماذج مختلفة في الشكل؟.. إنّ هذا يرجع للعديد من خصائص النموذج، هي التي سنتعرفها الآن:

 

زرا الموافقة والإلغاء AcceptButton, CancelButton:

زر الموافقة AcceptButton هو ذلك الزر الذي يتم ضغطه تلقائيًّا عند ضغط زر الإدخال Enter، بغض النظر عن الأداة النشيطة في تلك اللحظة.. وعادة ما يكون هذا الزر مكتوبا عليه "نعم" أو "موافق" أو "حسنا" أو "فليكن" أو "OK" أو "Yes".. إلخ.

بالمثل، فإنّ زر الإلغاء CancelButton، هو ذلك الزر الذي يتم ضغطه تلقائيًّا عند ضغط زر الإلغاء Esc.. وعادة ما يكون مكتوبا عليه "إلغاء" أو "لا" أو "إغلاق" أو "Cancel" أو "No" أو "Close".

وعندما تستطلع هاتين الخاصّيتين في نافذة الخصائص، ستجد في خانة القيمة الخاصة بكل منهما زر إسدال، يعرض قائمة بكل أسماء الأزرار الموجودة على نموذجك، بحيث يمكنك أن تختار منها الزر الذي تريده أن يكون زر الموافقة أو الإلغاء.

ويمكن تحديد قيمتيهما كذلك في الكود، بجملتين كالتاليتين:

Me.AcceptButton = Button1

Me.CancelButton = Button2

 

تحجيم تلقائي AutoScale:

لو جعلت قيمة هذه الخاصّيّة "صواب" True، فسيتغير حجم الأدوات الموضوعة على النموذج تلقائيّا ليتناسب مع ارتفاع الخط الذي كتبت به نصوصها.. والقيمة الافتراضيّة لهذه الخاصّيّة "صواب".. هذا هو السبب الذي يمنعك من تصغير الأدوات عن حجم معيّن.

ويتمّ ضبط الأدوات على الخط الذي اكتسبتْه من النموذج عند وضعها عليه، ولكن لو تم تغيير خط النموذج فيما بعد، فلن تتأثّر الأدوات بهذا التغيير.

.

انزلاق تلقائي AutoScroll:

لو اخترت لهذه الخاصّية القيمة صواب، فستظهر أحد أو كلا شريطي الانزلاق Scroll Bars تلقائيّا، في حالة تغيير حجم النموذج للدرجة التي تختفي فيها بعض أدواته.

وبفضل هذه الخاصّيّة يمكنك أن تصمّم نماذج ضخمة متخمة بالأدوات، دون أن تقلق بخصوص حجم الشاشة ودقّتها.

وتنزلق هذه المنزلقات تلقائيا لتعرض الأداة النشيطة حاليا، وكلما انتقل المستخدم لأداة أخرى بضغط زر Tab، يتم عرضها آليا.

 

هامش الانزلاق التلقائي AutoScrollMargin:

هذا هو الهامش الذي يُترك حول الأدوات الموجودة على النموذج، بحيث لو صار النموذج أصغر من المستطيل الذي تشكّله الهوامش، تظهر المنزلقات.

وهذه الخاصّيّة هي كائن، يحتوي على خاصيتين فرعيتين: العرض والارتفاع، حيث يتوجّب عليك وضع قيمتيهما.

ولفعل ذلك من الكود، استخدم جملتين كالتاليتين:

Me.AutoScrollMargin.Width = 40

Me.AutoScrollMargin.Height = 40

 

أصغر حجم للانزلاق التلقائيAutoScrollMinSize :

تسمح لك هذه الخاصية بتحديد أصغر حجم ممكن للنموذج، لو صغر عنه تظهر المنزلقات.

وهي أيضا كائن، له خاصيتا الارتفاع والعرض.

 

موضع الانزلاق التلقائي AutoScrollPosition:

تسمح لك هذه الخاصية بقراءة أو تغيير موضع المنزلق، ذلك الذي انزلقه من موضع الصفر (الأعلى بالنسبة للمنزلق الرأسي، واليسار بالنسبة للمنزلق الأفقي).

 

طراز الإطار FormBorderStyle:

تتحكّم هذه الخاصية في مظهر النموذج، وهي تأخذ واحدة من القيم الموضحة في الجدول التالي:

 

القيمة

معناها

بدون None

سيظهر النموذج بدون إطار وبدون شريط عنوان، بحيث لا يمكن تغيير حجمه أو تحريكه.. حاول أن تتجنب هذه القيمة.

متغير الحجم Sizable

وهي القيمة الافتراضية، حيث يتم عرض النموذج التقليدي، القابل للتحريك وتغيير الحجم.

مثبت مجسم Fixed3D

نموذج بإطار مرئي، مرتفع عن مساحة النموذج الرئيسية، ولكن لا يمكن تغيير حجمه.

مثبت حواريFixedDialog

نموذج يستخدم في مربعات الحوار، لا يمكن تغيير حجمه.

مثبت مفرد FixedSingle

نموذج لا يمكن تغيير حجمه، بإطار عبارة عن خط مفرد.

نافذة أدوات مثبتةFixedToolWindow

نموذج لا يمكن تغيير حجمه، بزر إغلاق فقط، وبدون زري تصغير وتكبير، وبدون الأيقونة ومربع التحكم.

نافذة أدوات متغيرة الحجمSizableToolWindow

مماثل للطراز السابق، لكنه قابل لتغيير حجمه.

 

مربع التحكّم ControlBox:

يمكنك جعل هذه الخاصية "خطأ" False، لإخفاء أيقونة النموذج، وبالتالي لا يتمكن المستخدم من إظهار مربع التحكم، كما ستختفي أزار التكبير والتصغير.. ولو جعلت خاصية النص Text نصا فارغا ""، فسيختفي شريط العنوان كلّيّة!

 

مراجعة الأزرار KeyPreview:

ماذا تفعل عندما تريد تخصيص زر معين لأداء وظيفة ما، كأن يتم إغلاق البرنامج عند ضغط زر F12؟

إنّ الطبيعيَّ أن الأداةَ التي تستقبل مؤشّر الكتابة، هي الأداة التي ستستجيب لضغط هذا الزرّ.. ونظرا لأنّ النموذج يحتوي على العديد من الأدوات، فلا بد أن تكتب الكود الذي يغلق البرنامج فيها كلها!

طبعا هذا شيء سخيف وغير عمليّ، ولهذا وجدت هذه الخاصّيّة، فبجعل قيمتها "صواب"، سيستجيب النموذج أولا لضغطات أزرار لوحة المفاتيح، بغضّ النظر عن الأداة النشيطة حاليّا، حيث سيتم إطلاق الأحداث "الزر مضغوط" KeyDown و"ضغط الزر" KeyPress و"ترك الزر"KeyUp الخاصّة بالنموذج، قبل أن يتم تمريرها إلى الأداة النشيطة على النموذج.

ويمكنك أن تمنع الأدوات من استقبال هذه الأحداث ومن التأثّر بضغط الزرّ، لو كتبت في أيٍ من أحداث النموذج سالفة الذكر، الجملة التالية:

e.Handled = True

حيث تخبر هذه الجملة الويندوز بأنّ الزر قد تمّت الاستجابة له، ولا داعي لأداء أيّ شيء آخر، وهنا سيتصرّف الويندوز وكأنّ الزر لم يضغط أساسا!

 

زر التصغير، وزر التكبير MinimizeBox, MaximizeBox:

اجعل أيا من هاتين الخاصيتين خطأ، لإيقاف عرض زر تصغير النموذج أو زر تكبيره.

 

عرض في شريط المهامّ ShowInTaskbar:

إذا جعلت هذه الخاصيّة True، فستظهر اسم النموذج في شريط مهامّ الويندوز (في الغالب يكون في الجزء السفليّ من الشاشة).

 

أصغر حجم وأكبر حجم MinimumSize, MaximumSize:

استخدم هاتين الخاصيتين لمنع المستخدم من تصغير النموذج أو تكبيره عن حد معيّن.

وهاتان الخاصيتان كائنان، يمكن تغيير قيمهما من الكود بإحدى الطريقتين التاليتين:

·        Me.MinimumSize = New Size(400, 300)

·        Me.MinimumSize.Width = 400

Me.MinimumSize.Height = 300

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

MinimumSize = New Size(400, 300 + SystemInformation.CaptionHeight)

 

حالة النافذة WindowState:

يمكنك بهذه الخاصيّة قراءة أو تغيير حالة النافذة.. ولهذه الخاصيّة 3 قيم: مكبّرة Maximized ومصغّرة Minimized وعاديّةNormal.. والحالة الأخيرة تعني عرض النموذج بالأبعاد التي تحدّدها خاصيتا العرض Width والارتفاع Height والقمّة Top واليسارLeft.

 

طراز علامة تغيير الحجم SizeGripStyle:

تمكنك هذه الخاصية من عرض علامة في ركن النموذج السفليّ الأيمن، لتدل على قابلية النموذج لتغيير حجمه.. وهي تأخذ واحدة من هذه القيم:

 

القيمة

التأثير

تلقائي Auto

علامة تغيير الحجم ستظهر عند الاحتياج إليها.. وهي القيمة الافتراضيّة.

عرض Show

سيتم عرض علامة تغيير الحجم دائما.

إخفاء Hide

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

 

موضع البداية StartPosition:

تحدد هذه الخاصيّة موضع النموذج عندما يتم عرضه للمرّة الأولى.. وهي تأخذ القيم التالية:

 

القيمة

تأثيرها

مركز محتويه CenterParent

سيتم توسيط النموذج حول مركز النافذة التي تحتويه.

مركز الشاشة CenterScreen

سيتم توسيط النموذج حول مركز الشاشة.

يدوي Manual

سيعرض النموذج تبعا لموضعه وحجمه كما تحددهما أنت.

حدود الويندوز الافتراضيّةWindowsDefaultBounds

سيعرض النموذج تبعا للموضع والحجم الافتراضيين كما يحددهما الويندوز.

موضع الويندوز الافتراضيWindowsDefaultLocation

سيتم عرض النموذج تبعا للموضع الافتراضيّ كما يحدده الويندوز، ولكن بالحجم الذي حدّدته أنت.

 

ما يجب أن تلاحظه هنا، هو أنّ استخدامك لأيّ قيمة غير القيمة Manual سيؤديّ لتجاهل الإحداثيّات التي وضعتها للنموذج ـ حتّى لو كانت من الكود ـ عند عرض النموذج لأوّل مرّة (سواء باستخدام الوسيلة Show أو الوسيلة ShowDialog أو جعل خاصيّة Visible =True)، ولكن بعد ذلك يمكنك تغيير موضع النموذج وحجمه من الكود بطريقة عاديّة، دون أن يكون لخاصيّة StartPosition أيّ تأثير.

 

القمّة واليسار والعرض والارتفاع Top, Left, Width, Height:

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

 

يعلو الجميع TopMost:

لو جعلت هذه الخاصية "صواب"، فستجعل هذا النموذج يعلو باقي نماذج تطبيقك، بحيث يظل مرئيا بكامله، حتّى لو نشّطت النماذج الأخرى بضغطها بالفأرة، مثلما يحدث مع نموذج البحث والاستبدال.

 

 

تثبيت الهامش  وانطباق الحافّة Anchoring and Docking:

عندما تصمّم نموذجا قابلا لأن يغيّر المستخدم حجمه، تواجهك مشكلة خطيرة: كيف ستبدو الأدوات عندما يتغير حجم النموذج؟.. هل سيختفي بعضها؟.. هل ستبدو منفّرةً وغير متناسقة مع الأبعاد الجديدة للنموذج؟

لهذا كان عليك في الماضي أن تكتب بعض الكود لمعالجة هذه المشكلة، بتعديل موضع الأدوات كلما تغيّر حجم النموذج، وذلك باستخدام الحدث "تغيّر الحجم" Resize Event.

ولكن أبشر: إنّ VB.NET يقدّم لك خاصيتين جديدتين موجودتين في معظم الأدوات، لتريحاك من هذا العناء.. هاتان الخاصيتان هما: "تثبيت الهامش" Anchor و"انطباق الحافّة" Dock.

وتتيح لك خاصيّة Anchor، تثبيت واحد أو أكثر من هوامش الأداة بالنسبة لحافّة النموذج المقابلة لها، بحيث يظل هذا الهامش ثابتا، مهما غيّر المستخدم من مساحة النموذج، حيث تتغيّر أبعاد الأداة تلقائيّا، للمحافظة على هذا الهامش.

جرّب وضع مربع نص على نموذج جديد، وابحث عن خاصّية "تثبيت الهامش" في نافذة الخصائص.. اضغط زر الإسدال في خانة القيمة.. ستظهر لك الأداة كمربّع رماديّ، يتصل بحوافّ النموذج بمستطيلات رفيعة كما في الشكل التالي.

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

وفي الوضع التلقائيّ، ستجد أن الأداة مثبّتة بالنسبة للهامشين العلويّ والأيسر.

والآن جرّب أوضاعا مختلفة لتثبيت الهوامش، ثم غيّر أبعاد النموذج بالفأرة.. لن تحتاجَ لتشغيل البرنامج، فسيمكنك أن ترى النتيجة في وضع التصميم.

 

عامّة يمكنك تجريب ذلك في المشروع الذي يحمل اسم هذه الخاصّيّة في مجلد أمثلة هذا الفصل.

لدينا أيضا خاصّيّة "انطباق الحافّة" Dock، والتي تمكّنك من جعل أيّ من حوافّ الأداة منطبقة على حافّة النموذج المقابلة.. إنّ القيمة الافتراضيّة لهذه الخاصّيّة هي "ولا واحدة" None.

تعالَ نجرّب هذه الخاصّيّة على مربع نص على نموذج جديد.. اضغط زر الإسدال لهذه الخاصية.. ستظهر لك مجموعة من المربعات، يمكنك أن تضغط منها ما يناسبك.. فمثلا لو ضغطت المربع الموجود في المركز، فستنطبق كل حواف الأداة على حواف النموذج، بمعنى أنّ الأداة ستحتل كل مساحة النموذج.

جرّب القيم المختلفة لهذه الخاصّيّة (حيث سيظهر لك تأثيرها أيضا في وقت التصميم)، كما أنّ لديك مشروعا يحمل اسم هذه الخاصّيّة في مجلّد أمثلة هذا الفصل.

 

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

1 إجابات على هذا السؤال .

  • 0

جزاك الله خير أخي وأكثر من أمثالك

شرح بسيط وواضح وسهل الفهم وفي انتظار المزيد

بالتوفيق إن شاء الله

 

آه أمثلة الفصل فين؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .