جمع شكلين في C# لجعلها متماسكة معًا
عند تطوير تطبيقات سطح المكتب باستخدام C#، قد يرغب المطورون أحيانًا في جعل نموذجين (Forms) ملتصقين ببعضهما البعض، بحيث يبقيا قريبين في الواجهة ويظهران بشكل متزامن. سنتناول في هذا المقال كيفية تحقيق ذلك باستخدام مكتبة WinForms دون الحاجة إلى استخدام واجهات مدمجة (MDI).
التقنيات المستخدمة لجعل النماذج ملتصقة
عندما نتحدث عن برمجة النماذج في C#، فإن الخيار الأكثر شيوعًا هو استخدام WinForms. يمكن تحقيق مفهوم التلاصق بين نموذجين بطرق متعددة دون الحاجة إلى تعقيد التصميم باستخدام MDI. واحدة من الطرق المستخدمة هي تعيين خصائص النماذج لتظهر معًا، بحيث يتمكن المستخدم من تحريكهما في نفس الوقت.
استخدام التحريك والتثبيت
يمكننا تصميم نموذج بحيث إذا تم نقل نموذج واحد، يتم نقل النموذج الآخر أيضًا. لهذا، يجب علينا إضافة حدث لتحريك النموذج الأساسي، ونقوم بتحديث موقع النموذج الثاني بناءً على ذلك. تعمل هذه الطريقة على التسريع من عملية إنشاء الواجهات المرئية بشكل جميل.
إليك مثالاً برمجيًا يوضح كيفية القيام بذلك:
private void AlimentationBtn_Click(object sender, EventArgs e)
{
FormAlimentationMain form1 = new FormAlimentationMain();
FormCalendar form2 = new FormCalendar();
FormAlimentation form3 = new FormAlimentation();
form1.Show();
form2.Show();
form3.Show();
// ضبط النموذجين لتثبيتهما مع النموذج الرئيسي
form2.TopLevel = false;
form3.TopLevel = false;
form1.Controls.Add(form2);
form1.Controls.Add(form3);
form2.Dock = DockStyle.Right;
form3.Dock = DockStyle.Left;
form1.LocationChanged += (s, e) =>
{
form2.Location = new Point(form1.Location.X + form1.Width, form1.Location.Y);
form3.Location = new Point(form1.Location.X - form3.Width, form1.Location.Y);
};
}
في الكود أعلاه، بعد فتح جميع النماذج، قمنا بتعيين موقع النموذجين الثانويين بالنسبة للنموذج الأساسي. عند تحريك النموذج الأساسي، يتم ضبط مواقع النموذجين الآخرين تلقائيًا.
إضافة ميزات تفاعلية
الخطوة التالية هي جعل هذه النماذج أكثر تفاعلية. يمكنك استخدام الأحداث الإضافية كما هو موضح في المثال أعلاه، بحيث يؤدي تحريك النموذج الأساسي إلى دفع النموذجين الثانويين إلى مواقع جديدة. إذا كنت ترغب في معالجة عمليات معينة، يمكنك دمج الوظائف الإضافية وعرض المعلومات ذات الصلة في النماذج الأخرى.
فائدة استخدام النماذج الملصقة
تعمل هذه الطريقة على تحسين التجربة البصرية للمستخدمين وتسهيل التنقل بين النماذج المختلفة. هذا يعد حلاً ممتازًا للمطورين الذين يرغبون في الحفاظ على تصميم بسيط دون استخدام التعقيدات المضافة لتقنيات الMDI. الفائدة هنا تكمن في تحسين التفاعل وتوفير واجهة مستخدم سلسة.
خاتمة
في نهاية المطاف، يعد جعل نموذجين ملتصقين في C# – How to make two forms stick together? عملية بسيطة وفعالة. من خلال استخدام أساليب مثل تعيين المواقع والتحريك بناءً على أحداث الموقع، يمكن للمطورين تقديم واجهتهم بشكل أكثر جاذبية. سواء كنت تبحث عن تنفيذ حل بسيط أو تطوير واجهات أكثر تعقيدًا، فإن استخدام النماذج الملصقة يعد خيارًا ممتازًا.
إذا كنت تبحث عن حلول بديلة، يمكن التفكير في جملة من التقنيات مثل استخدام Panels أو UserControls لتجميع الوظائف. بالنظر إلى فعالية هذه الحلول، يصبح جليًا أن هذه الأساليب تقدم العديد من الخيارات في تطوير واجهات المستخدم.