السلام عليكم ورحمة الله وبركاته
عمل فورم افتتاحية بالـ C#
هذه الفورم تسمى بالـ Splash screen (كنت أبحث عن هذا المصطلح من زمن.) :)
في هذا الدرس البسيط سنوضح طريقة عمل هذه الفورم
ولكن ما هي الـ splash screen ؟
الـ splash screen بالعربي هي فورم افتتاحية تستخدم لافتتاح البرامج حيث تحتوي على صورة فيها اسم البرنامج . مثال على هذه الفورمات تشاهدونها وقت تشغيل برامج مايكروسوفت اوفيس أو الأكروبات ريدر أو الفوتوشوب.
تعمل هذه الفورم ثواني معدودات ومن ثم تظهر واجهة البرنامج الرئيسي. وفي هذا الدرس البسيط سوف نتعلم طريقة اظهار صورة للبرنامج في هذه الفورم قبل ظهور واجهة البرنامج الرئيسية.
متطلبات الدرس: Visual Studio.NET مركب على الجهاز، تحضير صورة من اختياركم.
والآن نبدأ باسم الله عمل هذه الفورم باستخدام الـ C#.NET .
نشغل VS.NET وثم نختار C# Windows Application ونسمي المشروع SplashScreen.
والآن لنترك هذه الفورم على حدة وثم نضيف فورم أخرى باختيار Project ثم Add Windows Form ونسمي الكلاس باسم Splash.cs.
سوف نركز في عملنا حاليا على الفورم الجديدة وذلك باعداد بعض التعديلات على خصائصها من نافذة الخصائص properties.
FormBorderStyle = None StartPosition = CenterScreen
وجاء وقت العمل مع الصورة ، من نافذة الخصائص PROPERTIES
BackgoundImage = مسار الصورة
وبعد ذلك حاول توسيع أو تضويق الفورم لتتناسب مع حجم الصورة. وحدد الخاصية TransparencyKey بنفس لون خلفية الصورة حسب ما هو مناسب.
وسيكون من الرائع لو أن هذه الفورم لا تحتوي على أزرار الأغلاق والتكبير والتصغير أو أن تظهر في الـ task bar . لذلك نختار قيمة الخاصية ShowInTaskbar لتكون false
ونحفظ العمل.
نرجع الآن الى الفورم الأولى Form1 التي تركناها على حدة ونضيف لها سطور معدودة من الكود حتى يتسنى للفورم splash الظهور والعرض كشاشة افتتاحية.
من نافذة الـ Solution explorer اضغط على الزر View code وثم اذهب الى الـ constructor الخاص بالـ Form1 وثم أضف هذه السطور بعد الدالة InitializeComponent()
Thread th = new Thread(new ThreadStart(DoSplash)); Thread.Start(); th.Sleep(3000); th.Abort(); Thread.Sleep(1000);
هنا قد قمنا بتعريف عنصر من الشعيرة Thread وهذا العنصر يقوم بتشغيل الفورم splash من خلال الدالة DoSplash
السطر الثاني يعطي الأمر ببدء عمل الـ thread
في السطر الثالث نطلب من الفورم الظهور لمدة 3000 مللي ثانية (ثلاثة ثوان).
السطر الرابع: الدالة Abort() (واضح من اسمها) تنهي عمل الفورم splash
أما السطر الخامس فسبب استدعاء الدالة sleep مرة أخرى هو لاعطاء الفرصة للنظام لتحرير الموارد المستخدمة لعرض الفورم splash تمهيداً لانهائها فعلياً من العمل وعرض الفورم الرئيسية للبرنامج Form1.
أما الدالة DoSplash فتعمل كالآتي:
Void DoSplash()
{
Splash sp = new Splash();
sp.ShowDialog();
}حيث أننا قمنا بتعريف عنصر من الـ CLASS SPLASH ومن ثم عرضه.
الآن نضغط على زر الحفظ Save ونشغل البرنامج ونرى النتيجة.
تحياتي..


