tgoop.com/CsharpWindowsForm/267
Last Update:
السلام عليكم
بعد انا شرحنا أداة التحكم RichTextBox فمن خلال هذه الأداة يمكننا أداء جميع وظائف معالجة النصوص – من تنسيق النص و إجراء عمليات البحث – بسهوله وبدون جهد كبير
و سنشرح اليوم كيفيه إنشاء محرر نصوص يقوم بوظائف معينه
امثله على برامج محررات النصوص (note pad , المفكرة,word )
في البداية ستحتاج الى إضافة القوائم ( MenuStrip ) للسماح للمستخدم بفتح الملفات وحفظها ، وتنسيق النص ، واختيار الألوان ، وما إلى ذلك.
ملاحظة :
الأدوات التي سوف نحتاجها سوف نضيفها برمجياً (أي نقوم بإنشاء object من كلاسات أدوات التحكم) كذالك خصائص هذه الأدوات يتم التعديل عليها برمجياً
ملاحظة :
الشرح هذا لفهم بعض العمليات على RichTextBox لذالك سوف نهتم على البرمجة وليس التصميم و كل مبرمج وله طريقته الخاصة في تصميم شكل البرنامج الخاص به
لنبدأ :
public partial class Form1 : Form
{
RichTextBox rch = new RichTextBox();
MainMenu mnuMain = new MainMenu();
//
MenuItem mnFile = new MenuItem("File");
MenuItem mnSave = new MenuItem("Save");
MenuItem mnOpen = new MenuItem("Open");
MenuItem mnNew = new MenuItem("New");
//
MenuItem mnEdit = new MenuItem("Edit");
MenuItem mnCopy = new MenuItem("Copy");
MenuItem mnCut = new MenuItem("Cut");
MenuItem mnPaste = new MenuItem("Paste");
MenuItem mnUndo = new MenuItem("Undo");
MenuItem mnRedo = new MenuItem("Redo");
//
//
MenuItem mnFormat = new MenuItem("Format");
MenuItem mnFont = new MenuItem("Font");
//
OpenFileDialog ofd = new OpenFileDialog();
SaveFileDialog sfd = new SaveFileDialog();
FontDialog fd = new FontDialog();
في البداية انشئنا اوبجكت من نوع, RichTextBox وهو الاوبجكت الذي سوف نستخدمه في اغلب عمليات محرر النصوص هذا,
اما الاوبجكت الذي تم إنشائه في السطر الثاني فهو من نوع ) MainMenu ) أي قائمة رئيسية .
القائمة الرئيسية تظهر في اعلى الفورم تحت شريط التحكم
اما الكائنات التي من نوع MenuItem فهي تعتبر عناصر القائمة أي الخيارات التي سوف تظهر في القائمة
سوف نأخذ سطر برمجي نشرحه وبقي الاسطر التي من نفس الاوبجكت ينطبق عليها الشرح التالي :
MenuItem mnFile = new MenuItem("File");
في السطر السابق تم انشاء اوبجكت عنصر قائمة, من خلال دالة البناء التي تحتوي على وسيط من نوع string قمنا بإرسال اسم عنصر القائمة الذي سوف يظهر في اعلى الفورم .
طريقة أخرى تكافئ السطر البرمجي السابق :
MenuItem mnFile = new MenuItem();
public Form1()
{
InitializeComponent();
mnFile.Text = "File";
}
هل عرفت ما يعني الكود البرمجي الأول .
يعني عند انشاء كائن من خلال دالة البناء التي تحتوي على وسيط string لا يلزم اسناد قيمه للخاصية text كما في الكود الثاني فقط قم بإرسال قيمه من نوع string الى دالة البناء وهي سوف تقوم بمهمه إسناد القيمة للخاصية text .
يمكنك ايضاً كتابة اسم عنصر القائمة باللغة العربية .
OpenFileDialog ofd = new OpenFileDialog();
SaveFileDialog sfd = new SaveFileDialog();
FontDialog fd = new FontDialog();
الثلاثة الاسطر السابقة هي كائنات سوف نحتاجة عندما يضغط المستخدم على احد عناصر القائمة
File > Open
File > Save
Format > Font
public Form2()
{
InitializeComponent();
/////
rch.Dock = DockStyle.Fill;
Controls.Add(rch);
////
mnFile.MenuItems.Add(mnSave);
mnFile.MenuItems.Add("-");
mnFile.MenuItems.Add(mnOpen);
mnFile.MenuItems.Add("-");
mnFile.MenuItems.Add(mnNew);
//
mnEdit.MenuItems.Add(mnUndo);
mnEdit.MenuItems.Add(mnRedo);
mnEdit.MenuItems.Add(mnCopy);
mnEdit.MenuItems.Add(mnCut);
mnEdit.MenuItems.Add(mnPaste);
//
mnFormat.MenuItems.Add(mnFont);
//
mnuMain.MenuItems.Add(mnFile);
mnuMain.MenuItems.Add(mnEdit);
mnuMain.MenuItems.Add(mnFormat);
this.Menu = mnuMain;
//
mnSave.Click += new EventHandler(this.FileClicked);
mnOpen.Click += new EventHandler(this.FileClicked);
//
BY برمجة تطبيقات الويندوز C# Programming
Share with your friend now:
tgoop.com/CsharpWindowsForm/267