الشاشة الافتتاحية أو ما يُعرف بـ Splash Screen هي أول نافذة تظهر أمام المستخدم فور تشغيل البرنامج، وتُستخدم عادة لعرض شعار التطبيق أو اسم الشركة المطوّرة أو شريط تقدم يوضح حالة تحميل البرنامج في الخلفية. ورغم بساطة فكرتها، إلا أن وجود شاشة افتتاحية مصممة باحترافية يمنح المستخدم انطباعاً أولياً إيجابياً عن جودة البرنامج، ويهيئه نفسياً لتجربة استخدام سلسة ومتقنة. في هذا الدرس سنتعرف خطوة بخطوة على كيفية إنشاء شاشة افتتاحية احترافية باستخدام لغة فيجوال بيسك دوت نت (VB.NET).
🧩 مكونات الشاشة الافتتاحية الأساسية
قبل البدء بكتابة أي كود، من الضروري فهم العناصر التي تتكون منها أي شاشة افتتاحية احترافية داخل بيئة فيجوال ستوديو:
نموذج (Form) مستقل
يجب إنشاء نموذج (Form) منفصل تماماً عن النموذج الرئيسي للبرنامج، ويُفضل ضبط خاصية FormBorderStyle الخاصة به إلى القيمة None لإخفاء شريط العنوان والأزرار القياسية، بما يمنحها مظهراً نظيفاً واحترافياً أقرب إلى شاشات البرامج التجارية المعروفة.
شريط التقدم (ProgressBar)
يُستخدم عنصر ProgressBar لإعطاء المستخدم مؤشراً بصرياً واضحاً على مدى تقدم عملية التحميل، وهو عنصر أساسي في أي شاشة افتتاحية احترافية لأنه يقلل من شعور المستخدم بالانتظار غير المبرر.
عنصر النص (Label)
يُستخدم لعرض نسبة التحميل المئوية، أو رسائل نصية متغيرة توضح ما يقوم به البرنامج في تلك اللحظة، مثل "جاري تحميل الإعدادات" أو "جاري الاتصال بقاعدة البيانات"، وهو ما يمنح المستخدم شعوراً بالشفافية والتفاعل مع البرنامج.
المؤقت (Timer)
عنصر Timer هو العنصر المسؤول عن التحكم في المدة الزمنية لعرض الشاشة الافتتاحية، وتحديث قيمة شريط التقدم بشكل دوري ومنتظم حتى الوصول إلى النسبة الكاملة، ثم الانتقال تلقائياً إلى النافذة الرئيسية للبرنامج.
🎬 فيديوهات تعليمية مفيدة
لمشاهدة الخطوات العملية بشكل مباشر، يمكنك الرجوع إلى هذين الفيديوهين التعليميين اللذين يوضحان طريقة تصميم شاشة افتتاحية كاملة داخل فيجوال ستوديو:
طريقة إنشاء شاشة افتتاحية (Splash Screen) للتطبيق في الفيجوال بيسك — يوضح خطوات التصميم الأساسية للشاشة الافتتاحية من الصفر.
تصميم شاشة افتتاحية بألوان متدرجة ومتغيرة في VB.NET — يعرض كيفية إضافة تأثيرات لونية متدرجة وجذابة للشاشة.
🧪 مثال عملي: كود شاشة افتتاحية كاملة
فيما يلي كود بسيط وعملي بلغة VB.NET يوضح آلية عمل الشاشة الافتتاحية باستخدام مؤقت وشريط تقدم:
Public Class SplashScreen
Dim counter As Integer = 0
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
counter += 1
ProgressBar1.Value = counter
Label1.Text = "جارٍ تحميل البرنامج... " & counter & "%"
If counter >= 100 Then
Timer1.Stop()
Me.Hide()
MainForm.Show()
End If
End Sub
Private Sub SplashScreen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Timer1.Start()
End Sub
End Class
يعمل هذا الكود على النحو التالي: عند تحميل النموذج (Form Load)، يبدأ المؤقت بالعمل، وفي كل مرة يُفعّل فيها المؤقت (Timer1_Tick) يزداد المتغير counter بمقدار واحد، ويتم تحديث قيمة شريط التقدم والنص المصاحب له تلقائياً. وعند وصول العداد إلى القيمة 100، يتوقف المؤقت، وتُخفى الشاشة الافتتاحية، ويظهر النموذج الرئيسي للبرنامج مباشرة.
مثال متقدم: نص متحرك أثناء التحميل
لإضافة لمسة احترافية أكثر، يمكنك جعل النص يتحرك بشكل نقاط متتالية بدلاً من نسبة ثابتة، عبر الكود التالي:
Dim dots As Integer = 0
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
dots = (dots Mod 3) + 1
Label1.Text = "جارٍ التحميل" & New String("."c, dots)
counter += 2
ProgressBar1.Value = Math.Min(counter, 100)
If counter >= 100 Then
Timer1.Stop()
Me.Close()
MainForm.Show()
End If
End Sub
هذا الأسلوب يمنح شعوراً بحيوية أكبر أثناء التحميل، بدلاً من الاكتفاء بعرض رقم ثابت يتغير فقط.
⚙️ تخصيص الشاشة الافتتاحية وتحسين مظهرها
لجعل الشاشة الافتتاحية أكثر احترافية وجاذبية بصرية، يمكنك إضافة العناصر والتقنيات التالية:
الصور المتحركة أو الثابتة
يمكن إضافة شعار الشركة أو البرنامج كصورة ثابتة عالية الجودة في منتصف النموذج، أو حتى استخدام صور GIF متحركة عبر مكتبات خارجية لإضفاء طابع حيوي أكثر على الشاشة.
المؤثرات الصوتية
يمكن تشغيل مقطع صوتي قصير عند بدء تشغيل البرنامج باستخدام كائن My.Computer.Audio.Play()، بما يضفي طابعاً احترافياً إضافياً يشبه واجهات البرامج التجارية الكبرى.
التدرجات اللونية
بدلاً من استخدام لون خلفية ثابت عبر خاصية BackColor، يمكنك الاستعانة بكائن LinearGradientBrush من مكتبة System.Drawing.Drawing2D لرسم خلفية بتدرج لوني ناعم وجذاب داخل حدث Paint الخاص بالنموذج، وهو ما يمنح الشاشة الافتتاحية مظهراً عصرياً يشبه واجهات التطبيقات الحديثة.
استخدام الشاشة الافتتاحية في تطبيقات الأعمال
في تطبيقات الأعمال الحقيقية، لا تُستخدم الشاشة الافتتاحية فقط لأغراض جمالية، بل تُستغل أيضاً لتنفيذ عمليات فعلية في الخلفية أثناء عرضها، مثل الاتصال بقاعدة البيانات، أو التحقق من تحديثات البرنامج، أو تحميل ملفات الإعدادات الضرورية، بحيث يكون البرنامج جاهزاً تماماً للعمل فور اختفاء الشاشة الافتتاحية وظهور النافذة الرئيسية، دون أي تأخير إضافي يشعر به المستخدم.
🔐 ربط الشاشة الافتتاحية بشاشة تسجيل الدخول
في كثير من التطبيقات الاحترافية، لا تنتقل الشاشة الافتتاحية مباشرة إلى الواجهة الرئيسية للبرنامج، بل إلى شاشة تسجيل دخول (Login Form) للتحقق من هوية المستخدم أولاً. يمكن تحقيق ذلك بتعديل بسيط على السطر الأخير من كود المؤقت، بحيث يستدعي نموذج تسجيل الدخول بدلاً من النموذج الرئيسي مباشرة:
If counter >= 100 Then
Timer1.Stop()
Me.Hide()
Dim loginForm As New LoginForm()
loginForm.Show()
End If
وبهذا الشكل، يمر المستخدم بتسلسل منطقي واحترافي: شاشة افتتاحية للترحيب وعرض حالة التحميل، ثم شاشة تسجيل دخول للتحقق من الصلاحيات، ثم أخيراً الواجهة الرئيسية للبرنامج بعد نجاح عملية التحقق.
نصائح عامة لتصميم شاشة افتتاحية احترافية
- استخدمي ألواناً متناسقة مع هوية العلامة التجارية للبرنامج أو الشركة.
- تجنبي وضع الشاشة الافتتاحية في المنتصف تماماً دون تناسق مع دقة الشاشة؛ استخدمي خاصية
StartPosition = CenterScreen لضمان ظهورها في المنتصف على جميع الأجهزة.- اربطي الشاشة الافتتاحية بعمليات تحميل فعلية حقيقية بدلاً من مؤقت وهمي فقط، لتستفيدي من وقت العرض في تجهيز البرنامج فعلياً.
خاتمة
إن إضافة شاشة افتتاحية احترافية إلى برنامجك المطوَّر بلغة فيجوال بيسك ليست مجرد تفصيل جمالي ثانوي، بل هي جزء أساسي من تجربة المستخدم الأولى مع برنامجك، وتعكس مدى اهتمامك بالتفاصيل والجودة. باتباع الخطوات والأكواد الموضحة في هذا الدرس، ستتمكن من إنشاء شاشة افتتاحية متكاملة تجمع بين الوظيفة العملية والمظهر الاحترافي، بما يضيف لمسة تميّز حقيقية لمشروعك البرمجي القادم.
.png)