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

ارجوا اخباري عن كيفية تغيير شكل الفورم الى دائرة او مثلث ؟؟؟

مغلق
بدأه gamadeem في 26 يونيو 2007 · 3 رد · 1,133 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا آسف جدا على الموضوع السابق :(

وأرجو منكم أن تسامحوني..

وأرجو منكم الإجابة على سؤالي وهو :

كيف اعمل تصميم خاص لشكل الفورم .. مثلا ان يكون دائرة او مثلث او شكل مقطع او اي شكل آخر بدل من الشكل العادي لنوافذ الوندوز (الشكل المربع)

مع فائق تحياتي واحترامي ...

#3

أو يمكنك عمل ذلك عن طريق معالجة الحدث Paint للنموذج

- تأكد من وجود السطرين في بداية الملف الذي يحوي كود النموذج

using System.Drawing;
using System.Drawing.Drawing2D;

- أضف إجراء معالجة للحدث paint للنموذج واجعل محتوياته كما في الكود التالي

		private void Form1_Paint(object sender, PaintEventArgs e)
		{
			// Create a Graphics Path Object
			GraphicsPath Gp = new GraphicsPath();
			// Add an Ellipse to The Graphics Path
			Gp.AddEllipse(50, 50, 250, 250);
			// Redifine the Form Region
			this.Region = new Region(Gp);
		}

- شغل النموذج وسترى أنه أصبح دائريا

وإذا أحببت تغيير شكل أي تحكم آخر كالزر مثلا يمكنك فعل ذلك أيضا بمعالجة الحث Paint له فإن كان لدي زر باسم button1 و بحجم 75 × 75 يمكنك جعله دائريا بنفس الطريقة

		private void button1_Paint(object sender, PaintEventArgs e)
		{
			// Create a Graphics Path Object
			GraphicsPath Gp = new GraphicsPath();
			// Add an Ellipse to The Graphics Path
			Gp.AddEllipse(5, 5, 65, 65);
			// Redifine the Button Region
			button1.Region = new Region(Gp);
		}

- كما يمكنك باستخدم دوال الرسم المختلفة لعمل أي شكل تريد

طبعا استخدمت هنا دالة واحدة AddEllipse التي تقوم بإضافة شكل اهليلجي أو دائري إلى Graphics Path من أجل تبسيط الفكرة ولكن في الواقع يمكنك إضافة أي عدد تريد من الدوال معا مثل AddPath أو AddPolygon أو غيرها لتكوين أي شكل مركب تريده

تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 28 يونيو 2007 في 01:41

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#4

السلام عليكم ......

انا اسف لتدخلي ولكن الحل الصحيح هو ان تقوم بعمل override للميثود Paint ولا يوجد اصلا ميثود باسم button1_Paint والحل كتالي وهو تعديل بسط على حل الاخ محمد

protected override void OnPaint(PaintEventArgs e)

{

// Create a Graphics Path Object

GraphicsPath Gp = new GraphicsPath();

// Add an Ellipse to The Graphics Path

Gp.AddEllipse(50, 50, 250, 250);

// Redifine the Form Region

this.Region = new Region(Gp);

}

أكبر موقع عربي لتعليم السي شارب

موسوعة السي شارب

http://www.csharp1.com

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…