إنشاء مفكرتي الخاصة الجزء الأول

مرحبا بكم في موقع محمد بشير

الدرس الثالث عشر إنشاء مفكرتي الخاصة الجزء الأول

مرحبا بكم في الدرس الثالث عشر من دروس لغة البرمجة c#
من هذا الدرس ولعدة دروس لاحقة سوف نقوم بإنشاء برنامج صغير وهو عبارة عن مفكرتي الخاصة
وبالتأكيد سوف نتطرق للعديد والكثير من الأوامر والدوال المستخدمة في هذه اللغة
وبإكمال هذه السلسلة يكون بمقدورنا إنشاء وتصميم العديد من البرامج الأخرى إنشاء الله
أولا وقبل البدأ في شرح ما نود عمله أنوه إلى أنني سوف أستخدم عبارات مبسطة بعيدا عن المصطلحات العلمية وذلك لتسهيل الفهم على الأخوة المبتدئين والراغبين في تعلم لغات البرمجة بكل يسر وسهولة إنشاء الله
وأيضا أحب أن أنوه إلى أننا سوف نستخدم في هذه السلسلة القالب الخاص بالدرس الحادي عشر لذا نتمنا من أي شخص لم يطلع على الدرسين الحادي عشر والثاني عشر مراجعتهما قبل قراءة هذه السلسلة وذلك لتسهيل الفهم
أما الآن فدعونا مع الجزء الأول من سلسلة إنشاء مفكرتي الخاصة
تعتمد أي مفكرة نصوص عادية على مربع تحرير متعدد الأسطر وذلك لتحرير وقراءة وحفظ النصوص المختلفة
ولإنشاء مربع تحرير في لغة c# فهنالك ثلاثة طرق يمكن استخدامها
وهي كما يلي أولا editControl وثانيا textBox وثالثا richTextBox
أما بالنسبة للعنصر الأول فهو يعتمد على مجموعة حزم البرمجة الخاصة بالويندوز أي winapi أما العنصر الثاني فهو نسخة مطورة وسهلة الاستخدام لحد ما وأما بالنسبة للعنصر الثالث فهو نسخة أكثر تطورا ويحتوي على الكثير من الخصائص والمميزات التي لا يمكن تنفيذها باستخدام العنصرين الأولين
وبصورة عامة جميع هذه العناصر وخاصة العنصرين الأولين متشابهة إلى حد كبير فمثلا إذا أردنا كتابة برنامج مشابه لبرنامج المفكرة أو ال notePad الإفتراضي على نظام الويندوز فيمكن تحقيق ذلك وبكل سهولة باستخدام العنصرين الأولين ونفضل استخدام العنصر الثاني
ولكننا في هذه السلسلة سوف نقوم باستخدام العنصر الثالث إنشاء الله
ومن خلال هذا الدرس سوف نقوم بتعلم كيفية إشاء مربع التحرير وإنشاء القوائم مع عنصر واحد هو خاص بالخروج من البرنامج
نقوم اليوم باستخدام ملفين فقط هما ملف form1.cs وملف form1.designer.cs
بدون أي تغيير في بقية الملفات والمجلدات الأخرى
أولا ملف form1.cs يحتوي فقط على الأوامر التي نرغب في تنفيذها
فسوف نقوم بتعلم كيفية الخروج من البرنامج باستخدام القائمة الرئيسية
أما ملف form1.designer.cs فقوم باستخدامه لكتابة خصائص العناصر المختلفة كاملة
أما الآن فدعونا ننظر في محتوى هذين الملفين وبالله التوفيق

ولتحميل المشروع المستخدم في هذا الدرس الرجاء الضغط على رابط

تحميل مشروع الدرس 13

محتوى ملف form1.designer.cs

بالنسبة لهذا الملف من بداية السطر الأول حتى السطر 31 تمت كتابتها آليا باستخدام برنامج visual studio 2010
لذا ننصح بعدم تعديلها أو حذفها وسوف نبدأ كتابة العناصر التي نرغب في استخدامها من بداية السطر 32 فنرجوا الإنتباه
// أولا نقوم بتسمية وتعيين أنواع العناصر المختلفة.
أما أسماء العناصر فيمكن تغييرها كما تشاء ولكن بالنسبة لنوع العناصر فيجب كتابته بصورة صحيحة وموافق لقواعد البرمجة.
وطريقة الكتابة تكون كما يلي this.label1 = new System.Windows.Forms.Label(); //نوع العنصر هو Label وهوه عنصر أو شريط لإظهار الكتابة.
وسميناه باسم label1
this.text1 = new System.Windows.Forms.RichTextBox(); // نوع العنصر هو RichTextBox وهو العنصر الخاص بإنشاء مربع التحرير.
وسميناه باسم text1
this.menuStrip1 = new System.Windows.Forms.MenuStrip(); // نوع العنصر هو MenuStrip وهذا العنصر يعتبر هو قاعدة الأساس الخاصة بإنشاء القوائم المختلففة.
ويجب كتابته مرة واحدة فقط عند إنشاء القوائم.
وسميناه باسم menuStrip1
this.filemenu = new System.Windows.Forms.ToolStripMenuItem(); // نوع العنصر هو ToolStripMenuItem وهو عنصر خاص بإنشاء عناصر القوائم المختلفة.
ويجب كتابته عند إنشاء أي عنصر.
وسميناه باسم filemenu> وفي هذه الحالة يعتبر هذا العنصر هو العنصر الرئيسي الذي يظهر لنا عند الضغط على مفتاح القوائم
this.menuEnd = new System.Windows.Forms.ToolStripMenuItem(); // نوع العنصر هو ToolStripMenuItem وهو بإنشاء عناصر القوائم المختلفة.
وسميناه باسم menuEnd> وفي هذه الحالة هو عنصر الخروج من البرنامج وقد تمت إضافته للقائمة الرئيسية
// بهذه الطريقة نقوم بكتابة وإضافة أسماء وأنواع العناصر التي نرغب في استخدامها.
وفي هذا الدرس نقوم باستخدام هذه العناصر الأربعة المذكورة أعلاه فقط
// وبعد كتابة اسماء وأنواع العناصر المختلفة نقوم بكتابة وتعيين الخصائص المختلفة لكل عنصر وذلك باستخدام اسم العنصر المعين كما هو موضح أعلاه
// وبصورة عامة تعتبر كتابة الخصائص لكل عنصر من العناصر المختلفة متشابهة لحد كبير وطريقة كتابتها كما يلي
// // شريط إظهار الكتابة label1 //
this.label1.AutoSize = true;// جعل حجم شريط الإظهار تلقائي
this.label1.Location = new System.Drawing.Point(18, 23);// خاصية location وهي لتعيين موقع العناصر المختلفة على شاشة الحاسب
this.label1.Name = "label1"; // خاصية name وهي لتعيين اسم العناصر المختلفة
this.label1.Size = new System.Drawing.Size(15, 17);// خاصية size وهي لتعيين حجم العناصر المختلفة على الشاشة
this.label1.TabIndex = 0; // خاصية index وهي لتعيين ترتيب وتسلسل العناصر المختلفة.
وأول عنصر يكون رقمه التسلسلي هو 0
this.label1.Text = "مفكرتي"; // خاصية text وهي لكتابة اسم العناصر المختلفة التي تظهر لنا في الشاشة
// وبهذه الطريقة يمكن كتابة معظم خصائص العناصر المختلفة مع بعض الفروقات البسيطة
// وذلك على حسب نوع العنصر المراد استخدامه // مربع التحرير الرئيسي text1 //
this.text1.Location = new System.Drawing.Point(20, 47); // تعيين موقع العنصر على الشاشة
this.text1.Multiline = true; // خاصية Multiline وهي خاصة بعناصر التحرير المختلفة ويمكن من خلالها تفعيل وتعطيل خاصية تعدد الأسطر.
والوضع الإفتراضي هو false أي تعطيل خاصية تعدد السطور وفي هذه الحالة لا يمكننا كتابة أكثر من سطر واحد
this.text1.AcceptsTab = true; // خاصية AcceptsTab وهي لتفعيل وتعطيل استخدام مفتاح ال tab والوضع الإفتراضي هو false
this.text1.WordWrap = false; // خاصية WordWrap وهي لتفعيل وتعطيل الإنتقال التلقائي للسطور والوضع الإفتراضي هو true أي السماح بالإنتقال التلقائي للسطور
this.text1.Name = "text1"; // خاصية name وهي لتعيين اسم العناصر المختلفة
this.text1.Size = new System.Drawing.Size(640, 480); // خاصية size وهي لتعيين حجم العناصر المختلفة على الشاشة
this.text1.TabIndex = 1; // خاصية index وهي لتعيين ترتيب وتسلسل العناصر المختلفة
this.text1.Text = ""; // خاصية text وهي لتعيين اسم أو محتوى العنصر الذي يظهر لنا على الشاشة وفي هذه الحالة يكون مربع التحرير فارغا
// // القاعدة الأساسية للقوائم menuStrip1 //
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.filemenu
}); // خاصية Items.AddRange وتستخدم لإضافة عناصر القوائم المختلفة ويتم الفصل بين كل عنصر والآخر بعلامة , كما لا تكتب هذه العلامة بعد العنصر الأخير وفي هذه الحالة لا يوجد لدينا سوى عنصر واحد وهو عنصر filemenu لذا لا نحتاج لكتابة علامة , أو الفاصلة
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(702, 24);
this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1";
// // fالقائمة الرئيسية ilemenu //
this.filemenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuEnd
});// خاصية Items.AddRange وتستخدم لإضافة عناصر القوائم المختلفة وفي هذه الحالة لدينا عنصر واحد وهو الخاص بالخروج من البرنامج
this.filemenu.Name = "filemenu";
this.filemenu.Size = new System.Drawing.Size(36, 20);
this.filemenu.Text = "قائمة";
// // عنصر الخروج من البرنامج menuEnd //
this.menuEnd.Name = "menuEnd";
this.menuEnd.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Q))); // خاصية ShortscutKey وهي لتعيين مفتاح الإختصار لعناصر القوائم المختلفة وهذه الخاصية خاصة بعناصر القوائم المختلفة وفي هذه الحالة جعلنا مفتاح الخروج من البرنامج هو مفتاح التحكم مع حرف q
this.menuEnd.Size = new System.Drawing.Size(158, 22);
this.menuEnd.Text = "الخروج(&control+Q)";
this.menuEnd.Click += new System.EventHandler(this.menuEnd_Click); // خاصية Click وتستخدم هذه الخاصية للسماح باستخدام لوحة المفاتيح والفأرة وذلك عند النقر علىعناصر القوائم المختلفة لتنفيذ الأوامر المختلفة.
وفي هذه الحالة عند الضغط على عنصر الخروج من البرنامج يتم تنفيذ الكود الخاص بالخروج من البرنامج.
وأيضا قمنا بتسمية الدالة الخاصة والتي نقوم بإنشائها لكتابة الأوامر الخاصة بالخروج من البرنامج واسم الدالة هو menuEnd_Click.
ملحوظة الملف الحالي هو خاص بكتابة خصائص العناصر المختلفة أما الملف الخاصة بكتابة السطور الإلكترونية أو أوامر التنفيذ المختلفة فيجب كتابتها في ملف Form1.cs
// وبعد كتابة جميع الخصائص الضرورية كما هو موضح أعلاه نقوم بكتابة الإعدادات العامة بالبرنامج كما هو موضح أدناه
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; // تعيين وكتابة نوع الخط الخاص بالبرنامج
this.ClientSize = new System.Drawing.Size(640, 480); // خاصية ClientSize وهي لتعيين حجم البرنامج الكامل على شاشة الحاسب الآلي
this.Controls.Add(this.label1); // خاصية controls.Add لإضافة العناصر التي تمت كتابتها إلى البرنامج وفي هذه الحالة قمنا بإضافة عنصر label1 وأي عنصر مل يتم إضافته سوف لن يظهر لنا في البرنامج ولا يمكن استخدامه
this.Controls.Add(this.text1); // إضافة عنصر text1 إلى البرنامج
this.Controls.Add(this.menuStrip1); // إضافة عنصر menuStrip1 وهو عنصر القاعدة الأساسية للقوائم.
ملحوظة بالنسبة لعناصر القوائم المختلفة فقط يجب علينا إضافة عنصر القاعدة الأساسية ولا نحتاج لإضافة كافة عناصر القوائم المختلفة
this.Text = "هذه هي مفكرتي"; // خاصية text تستخدم لإظهار أسماء العناصر المختلفة على الشاشة ولكن في هذه الحالة مكتوبة بدون أي اسم عنصر لذا تعتبر اسم البرنامج الخاص بنا
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); // خاصية FormClosing يتم استدعائها عند الخروج من البرنامج حتى ولو كان الخروج من البرنامج بصورة غير طبيعية ولكتابة الأوامرالخاصة بهذه الدالة قمنا بتسميتها باسم Form1.FormClosing
this.Load += new System.EventHandler(this.form1_Load); // خاصية Load وهي تستخدم لكتابة الأوامر التي نرغب في تنفيذها عند فتح البرنامج لأول مرة.
وقمنا بتسمية الدالة الخاصة بها باسم Form1_load
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
// هذه الخصائص لزيادة سرعة البرنامج عند فتحه
}
#endregion
// وأخيرا لربط العناصر التي قمنا بكتابتها في هذا الملف نقوم بإضافة نوع العنصر متبوعا باسمه إلى السطر التالي private System.Windows.Forms.
private System.Windows.Forms.Label label1; // إضافة عنصر شريط الإظهار label1
private System.Windows.Forms.RichTextBox text1; //إضافة عنصر text1
private System.Windows.Forms.MenuStrip menuStrip1; // إضافة عنصر القاعدة الأساسية للقوائم menuStrip1 ملحوظة يجب إضافة كافة عناصر القوائم المختلفة
private System.Windows.Forms.ToolStripMenuItem filemenu; // إضافة عنصر filemenu
private System.Windows.Forms.ToolStripMenuItem menuEnd; // إضافة عنصر menuEnd
وبعد كتابة جميع العناصر التي نرغب في استخدامها يجب علينا تعديل ملف Form1.cs وذلك قبل تنفيذ البرنامج

محتوى ملف form1.cs


في بداية هذا الملف يجب علينا كتابة الحزم الإفتراضية والضرورية لإنشاء النوافذ والأوامر العامة
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// كتابة اسم المشروع ويجب أن يكون متطابقا في كل ملفات هذا المشروع
namespace sample_project
{ // علامة البداية للمشروع
public partial class Form1 : Form // اسم الإطار العام والذي سميناه باسم Form1
{ // علامة البداية للإطار
public Form1()
{
InitializeComponent(); // جعل الإطار Form1 في حالة الوضع الإفتراضي
}
//フالأوامر الخاصة التي نرغب في تنفيذها عند بداية البرنامج أي إنشاء حزمة البداية كما ذكرنا في ملف Form1.Designer.cs
private void form1_Load(object sender, EventArgs e)
{
// في هذا الدرس لا توجد لدينا أي أوامر نرغب في تنفيذها عند فتح البرنامج فقط يظهر لنا مربع التحرير متعدد الأسطر
}
// الحزمة الخاصة بكتابة الأوامر التي نرغب في تنفيذها عند الخروج من البرنامج وأيضا قد قمنا بتسميتها بف ملف Form1.Designer.cs
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// لا توجد أي أوامر نرغب في كتابتها في هذا الدرس
}
// الحزمة الخاصة بتنفيذ الأوامر عند الضغط على عنصر الخروج من البرنامج والموجود في القائمة الرئيسية
private void menuEnd_Click(object sender, EventArgs e) // نقوم باستخدام هذا السطر لكتابة الدوال الخاصة لتنفيذ الأوامر عند الضغط على القوائم والأزرار المختلفة.
يجب علينا كتابة هذا السطر كما هو فقط يجب علينا تغيير اسم الدالة والذي نقوم بتحديده كما موضح في ملف Form1.Designer.cs.
واسم الدالة الخاص بأوامر الخروج من البرنامج هو menuEnd_Click
{ // علامة بداية الدالة
this.Close(); // خاصية Close وتستخدم لإغلاق النوافذ
this.Dispose(); // خاصية Dispose وتستخدم لإغلاق النوافذ مع حزف جميع إشعارات البرنامج من النظام
} // علامة الخروج من الدالة
} // علامة نهاية الإطار العام Form1
} //علامة نهاية المشروع
في هذا الدرس ركزنا فقط على تعلم كيفية إنشاء القوائم ومربع التحرير
كما تعلمنا أيضا كيفية تنفيذ الأوامر وذلك باستخدام عناصر القائمة الرئيسية
ومن الدرس التالي سوف نتعلم كيفية إنشاء ملف جديد وفتح الملفات النصية
لذا نتمنا مراجعة محتوى هذا الدرس بصورة جيدة حتى يسهل علينا الاستمرار في الدروس القادمة
كما يسرني استقبال أسألتكم وذلك من خلال المنتدى العام أو من خلال مجموعة البريد الإلكتروني

للذهاب إلى صفحة المتدى العام الرجاء الضغط على رابط


المنتد العام


وللإشتراك في مجموعة البريد الإلكتروني الرجاء الضغط على



الإشتراك بمجموعة البريد الإلكتروني وإلغاء الإشتراك


ولمعرفة المزيد عن مجموعة البريد الإلكتروني الرجاء الضغط على رابط


معلومات عن مجموعة البريد الإلكتروني