اضافة أدوات بالكود :
تعلمنا رسم الفورم بالكود ، جاء الدور الآن على وضع الأدوات المختلفة على الفورم ، يتم ذلك بالواقع من خلال الأوامر التالية :
Add()
AddRange()
لعمليات الاضافة .
Clear()
حذف الجميع .
Count
عدد الادوات ، في الواقع هذه الخاصية مفيدة جداً عند محاولات المرور على الأدوات .
Remove()
RemoveAt()
للحذف .
أما الأدوات التي يمكنك اضافتها ، فجميعها موجود تحت الفئة System.Windows.Forms ، حيث تجد كل الادوات التي تعودت على رؤيتها ...
مثال : اضافة قائمة File - Exit :
سنحاول الوصول للشكل التالي حيث يمكن الخروج بالضغط على زر Exit في القائمة :
الكود سيكون بسيطاً ، سنقوم بتعريف MenuStrip للقائمة ومن ثم ToolStripMenuItem لعناصر القائمة :
C#:
كود :
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
vb.net:
كود :
Private menuStrip1 As System.Windows.Forms.MenuStrip
Private fileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Private exitToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
الخطوة الثانية هي عمل دالة في ال Constructor وليكن اسمها BuildForm ، بدلاً من وضع الاكواد مباشرة في ال Constructor .
C#:
كود :
public SimpleForm()
{
Text="Example. Simple Form";
BuildForm();
}
vb.net:
كود :
Public Sub New()
Text = "Example. Simple Form"
BuildForm()
End Sub
الآن سنقوم ببرمجة هذه الدالة ، سنقوم بوضع اسماء للعناصر ونضيفها باستخدام Add للقائمة الرئيسية :
C#:
كود :
fileToolStripMenuItem.Text = "&File";
menuStrip1.Items.Add(mnuFile);
exitToolStripMenuItem.Text = "E&xit";
menuStrip1.DropDownItems.Add(mnuFileExit);
vb.net:
كود :
fileToolStripMenuItem.Text = "File"
menuStrip1.Items.Add(mnuFile)
exitToolStripMenuItem.Text = "Exit"
menuStrip1.DropDownItems.Add(mnuFileExit)
الخطوة الثانية هي اضافة Handler لحدث الضغط لعنصر Exit بالشكل التالي :
C#:
كود :
exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
vb.net:
كود :
AddHandler exitToolStripMenuItem.Click, AddressOf exitToolStripMenuItem_Click
أخيراً سنعتمد القائمة الرئيسية لتكون القائمة الخاصة بال Form بالشكل التالي بعد اضافتها للفورم :
C#:
كود :
Controls.Add(this.mnuMainMenu);
MainMenuStrip = this.menuStrip1;
vb.net:
كود :
Controls.Add(Me.mnuMainMenu)
MainMenuStrip = Me.menuStrip1
الآن سوف نقوم بكتابة الحدث الخاص بالضغط على زر Exit :
C#:
كود :
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
vb.net:
كود :
Private Sub exitToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
Application.[Exit]()
End Sub
بهذا يكون الكود الاجمالي بالشكل التالي :
c#:
كود :
class SimpleForm: Form
{
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
public SimpleForm()
{
Text="Example. Simple Form";
BuildForm();
}
private void BuildForm()
{
fileToolStripMenuItem.Text = "File";
menuStrip1.Items.Add(mnuFile);
exitToolStripMenuItem.Text = "Exit";
menuStrip1.DropDownItems.Add(mnuFileExit);
exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
Controls.Add(this.mnuMainMenu);
MainMenuStrip = this.menuStrip1;
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
vb.net:
كود :
Class SimpleForm
Inherits Form
Private menuStrip1 As System.Windows.Forms.MenuStrip
Private fileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Private exitToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Public Sub New()
Text = "Example. Simple Form"
BuildForm()
End Sub
Private Sub BuildForm()
fileToolStripMenuItem.Text = "&File"
menuStrip1.Items.Add(mnuFile)
exitToolStripMenuItem.Text = "E&xit"
menuStrip1.DropDownItems.Add(mnuFileExit)
AddHandler exitToolStripMenuItem.Click, AddressOf exitToolStripMenuItem_Click
Controls.Add(Me.mnuMainMenu)
MainMenuStrip = Me.menuStrip1
End Sub
Private Sub exitToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
Application.[Exit]()
End Sub
End Class
في الدرس القادم سوف نقوم ببناء نفس التطبيق ولكن من خلال Visual Studio.net ...