الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أكبر {maximize} ال Form

بدأه ياسمين أيمن في 29 أبريل 2012 · 5 رد · 922 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي سؤال

كيف أغير حجم ال Form بمعني أنا عندي Form عليها اتنين PicturBox وعاوزة لما أضغط على زرار ال maximize

يكبر لي حجم ال form كله ويكبر الحاجات اللي عليه

لأني لما بدوس على الزرار ده بيكبر لي الحجم بس بيخلي ال حاجات اللي عليه كده في الجنب وشكلها مش حلو أنا هرفع صور توضح قصدي

دي أول لما يشتغل عادي

post-258597-014018900 1335663534_thumb.j

الصورة دي بعد ما دست على زرار ال maximize

post-258597-092864200 1335663647_thumb.j

وشكرا

المرفقات
1 beformaximize.jpg2 after maximize.jpg
#2

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

الأخت الكريمة:

هناك طريقتين :

إما باستخدام عنصر TableLayoutPanel وهو يمكنك من تخطيط الصفحة بحسب ما ترغبي من أسطر وأعمدة وتوزعيها كما ترغبين

ثم تضعي في داخل كل خلية العنصر الذي تريدين

وللعلم يمكن تقسيم الأسطر والأعمدة إما بالنسبة أو بشكل مطلق وفي حالتنا هذه يجب أن يكون ارتفاع سطر الأزرار ثابت وقيمته هو ارتفاع الأزرار + المارجن من الأعلى والأسف.

واحرصي أن تكون خاصية Dock للعنصر قيمته Fill لكي يملأ الخانة عندما يتغير قياسها

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

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

مثلا تعرف متحول cMargin = 5;

ثم تجعلي خاصية Top للأزرار تكون قيمة الهامش وأما قيمة Top لصناديق الصور تكون قيمة Button1.Bottom + cMargin وهكذا

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

ولكن يبقى الحل الأول أسهل بكثير لإن مهمة توزيع العناصر وتغيير القياسات تقع على عاتق العنصر TableLayoutPanel

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

هذا مثال بسيط اعتمدت فيه على الطريقة الأولى ورفعته

http://www.mediafire...epal02rl53c63hb

تم تعديل هذه المشاركة بواسطة المبرمج أبو أحمد في 29 أبريل 2012 في 06:05

1

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#3

أختي هناك خاصية الـ Anchor يمكن بها تحقيق ما تريدينه .

#4
Mohammad Walid كتب:

أختي هناك خاصية الـ Anchor يمكن بها تحقيق ما تريدينه .

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

جزاك الله خيرا أخي

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

إن كانت هناك طريقة معينة تصلح فأرجو أن لا تحرمنا منها لنتعلم فما أوتينا من العلم إلا قليلا والتعاون مطلوب لأتعلم منك وتتعلم مني ونتعلم جميعا من بعضنا البعض

وجزاك الله كل خير ونفعنا بك.

أخوك

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#5
المبرمج أبو أحمد كتب:

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

الأخت الكريمة:

هناك طريقتين :

إما باستخدام عنصر TableLayoutPanel وهو يمكنك من تخطيط الصفحة بحسب ما ترغبي من أسطر وأعمدة وتوزعيها كما ترغبين

ثم تضعي في داخل كل خلية العنصر الذي تريدين

وللعلم يمكن تقسيم الأسطر والأعمدة إما بالنسبة أو بشكل مطلق وفي حالتنا هذه يجب أن يكون ارتفاع سطر الأزرار ثابت وقيمته هو ارتفاع الأزرار + المارجن من الأعلى والأسف.

واحرصي أن تكون خاصية Dock للعنصر قيمته Fill لكي يملأ الخانة عندما يتغير قياسها

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

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

مثلا تعرف متحول cMargin = 5;

ثم تجعلي خاصية Top للأزرار تكون قيمة الهامش وأما قيمة Top لصناديق الصور تكون قيمة Button1.Bottom + cMargin وهكذا

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

ولكن يبقى الحل الأول أسهل بكثير لإن مهمة توزيع العناصر وتغيير القياسات تقع على عاتق العنصر TableLayoutPanel

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

هذا مثال بسيط اعتمدت فيه على الطريقة الأولى ورفعته

http://www.mediafire...epal02rl53c63hb

يااااااااااه جزاك الله خيرا جربت الطريقة الأولى واشتغلت معايا

ولكن لم أفهم هذه الجملة يجب أن يكون ارتفاع سطر الأزرار ثابت وقيمته هو ارتفاع الأزرار + المارجن من الأعلى والأسف.

وأعتقد أن عدم فهمي لهذه الجملة بيخلي ال button مترضاش تيجي في المنتصف :(

ممكن تشرحهالي وشكرا :)

#6
ياسمين أيمن كتب:

يااااااااااه جزاك الله خيرا جربت الطريقة الأولى واشتغلت معايا

ولكن لم أفهم هذه الجملة يجب أن يكون ارتفاع سطر الأزرار ثابت وقيمته هو ارتفاع الأزرار + المارجن من الأعلى والأسف.

وأعتقد أن عدم فهمي لهذه الجملة بيخلي ال button مترضاش تيجي في المنتصف :(

ممكن تشرحهالي وشكرا :)

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

لو ذهبت لتعديل أسطر وأعمدة عنصر TableLayoutPanel فستلاحظي أن تقسيمات الأسطر أو الأعمدة تكون إما بالنسبة وإما ثابتة بالبيكسل

بمعنى لو حددت أن السطر الأول هو 30% والثاني 70% فدائما يتغير ارتفاع السطران بحسب هذه النسبة كلما كبرت الفورم أو صغرتيه

ولكن في مثالنا : ارتفاع الزر تقريبا 22 ولو أضفنا الفراغ أعلاه 5 وأسفله 5 لأصبح المجموع 32 ولهذا عينا ارتفاع السطر الأول 32 بيكسل وجعلنا الصاني يأخذ 100% من المتبقي

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

1

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

مواضيع مشابهة