تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثاني والخمسون - Windows Forms
#11
ذكرنا في الدرس السابق بإننا سنقوم باستعراض الأدوات ، أول نقطة عليك معرفتها هي أن كل الأدوات مشتقة من الفئة Controls لذا فإن أي
أداة ستتمتع بالخصائص والأحداث التي قمنا بشرحها في الدرس السابق مباشرة .

الآن سنستعرض بعض الأدوات الرئيسية لدينا .

Button :
زر أمر عادي جداً ، يحتوي على بعض الخصائص مثل :
FlatStyle : تحديد مظهر زر الأمر .
TextAlign : موضع النص من زر الأمر .


CheckBox :
زر الاختيار المتعدد ، يمكننا اختيار عدة عناصر ، يحتوي على خصائص اضافية مثل :
CheckState : حالة الاختيار .
ThreState : لتحديد كونه يحمل خاصية ثالثة ( مفعل - غير مفعل - مفعل جزئياً ) .


RadioButton :
مثل السابق ولكنه يسمح لك باختيار واحد ، لو كنت تريد استخدامه لأكثر من مرة ضع كل منهم في panel مختلف .
ComboBox و ListBox .
قائمة للاختيار من ضمن خيارات ، الاولى في صف واحد والثانية حسب الحجم المطلوب .
يحتوي على جميع الخصائص التي تعلمناها في Collection.List مثل Items.Add و Items.Remove ....

الخ .


Textbox :
أداة نصية تسمح للمستخدم بالكتابة داخلها ، بعض خصائصها الاضافية .

ReadOnly : جعلها للقراءة فقط .
PasswordChar : الرمز الذي يظهر في حالة جعل مربع النص للادخال .
MultiLine : السماح بجعلها متعددة الأسطر .
maxLength : الطول الاقصى للنص .
ScrollsBar : اشرطة التمرير حيث انها مشتقة من الفئة

System.Windows.Forms.ScrollableControl ، لذا سيكون بامكاننا اختيار وضع من ال enumeration المسمى ScrollBars .

Label :
أداة لعرض النصوص .
GroupBox و Panel :
أدوات حاوية يمكن وضع أدوات أخرى بداخلها .

RichTextBox :
أداة نص تسمح لمحتوياتها ان تحتوي على تنسيقات مختلفة ، الفارق بينها وبين TextBox هو الفارق بين Notepad و Wordpad ،
تحتوي على الخصائص الاضافية التالية :
Wordwrap : لتحديد التفاف النص .
Select : لتحديد جزء من النص عن طريق نقطة بداية ونهاية ، او نقطة بداية وطول .
SelectionXXX : لتحديد تنسيق خط للجزء المحدد ، مثل اللون SelectionColor .


كما يحتوي على الدوال الاضافية التالية :
LoadFile : لفتح ملف نصي من مسار معين .
SaveFile : لحفظ الملف في مكان معين .


يمكنك التعرف على المزيد عنها من خلال درس الأخ أحمد بدر هنا :
http://vb4arb.com/vb/showthread.php?1292

Timer :
أداة للمؤقت ، لها حدث Ticker والذي يتم تنفيذه كل Interval معين ، تفيد في حالة عمل اوامر تكراريه بفوارق زمنية .

TreeView :
لعرض أداة الشجرة ، عنصرها الاساسي هو Nodes والذي يمكن من خلاله اضافة أي عناصر وحذفها .

Progressbar :
لعرض مؤشر التقدم ، خصائصه الاساسية هي Minimum - Maximum لتحديد الحد الأعلى والأدنى اضافة للخاصية Step لتحديد مقدار التقدم كل مرة ، يمكنك تحديد style لعملية التقدم من خلال الخاصية Style والتي تقرأ من ال enumeration المسمى ProgressBarStyle .
يمكن تحديد الخاصية لاحقاً باستخدام الخاصية Value .


يمكنك التعرف على المزيد عنها من خلال درس الأخ أحمد بدر هنا :
http://vb4arb.com/vb/showthread.php?1296

Trackbar :
مشابه لل Progressbar لكنك انت من تتحكم بقيمته ، مثل Trackbar الخاص برفع وخفض الصوت .

DateTimePicker
أداة لاختيار التواريخ والأوقات ، يمكنك التعرف على المزيد عنها من خلال درس الأخ أحمد بدر هنا :
http://vb4arb.com/vb/showthread.php?1335

الأدوات كثيرة جداً ولا جدوى من اضاعة الوقت في التعرف على تفاصيلها ... لذا أكتفي بأن احيلك إلى موقع مايكروسوفت حيث تجد شرحاً تفصيلياً لكل أداة :
http://msdn.microsoft.com/en-us/library/aa984065(VS.71).aspx

هناك عناصر أخرى هي ال Dialogs سنتعرف عليها في مرة قادمة إن شاء الله ...
راحة قصيرة أعود بعدها للإكمال إن شاء الله ...
}}}
تم الشكر بواسطة:
#12
Dialogs :

في بداية موضوعنا عن المربعات الحوارية سنقوم أولاً بتصميم واحد خاص بنا ، ثم في المرحلة الثانية سنقوم بالتعرف على استخدامات بعض المربعات الحوارية الشائعة .

قم بانشاء فورم جديد ، قم بالغاء خاصية ال resizeable ، قم بضبط خاصية FormBorderStyle إلى FixedDialog ، قم باخفاء MinimizeBox و MaximizeBox ... بهذه الطريقة يكون تصميم أغلب المربعات الحوارية .

الآن قم بتصميم المربع الحواري كما يحلو لك ، في اي مربع حواري أو Dialog يكون الناتج واحداً من العناصر المعرفة في enumeration المسمى DialogResult والذي يحتوي على القيم التالية :


كود :
Abort, Cancel, Ignore, No, None, OK, Retry, Yes
لضبط الزر الذي يعيد القيمة OK نضبط خاصية ال AcceptButton للفورم على الزر المختار .
ايضاً الامر بسيط بالنسبة للخاصية Cancel حيث نجد الخاصية CancelButton .


لاظهار فورم بصورة مربع حواري Dialog نستخدم الأمر ShowDialog بالشكل التالي مثلاً :

كود :
newDialog.ShowDialog()
ولكن وبما اننا بحاجة لقراءة القيم الناتجة عنه ومعرفة اي زر تم اختياره ، سنكتب الكود الخاص بنا بالشكل التالي على سبيل المثال :

C#:


كود :
if (newDialog.ShowDialog() == DialogResult.Cancel)
{
// do something
}
else if (newDialog.ShowDialog() == DialogResult.Ok)
{
// do something else
}

vb.net:



كود :
If newDialog.ShowDialog() = DialogResult.Cancel Then
' do something
ElseIf newDialog.ShowDialog() = DialogResult.Ok Then
' do something else
End If

ولو حاولنا قراءة محتويات ال Dialog سيكون لزاماً علينا تعريف القيم المطلوبة public ، لذا قم مثلاً بتعديل مربع النص بالشكل التالي :

كود :
public System.Windows.Forms.TextBox TextBox1;
}}}
تم الشكر بواسطة:
#13
MessageBox:

النوع الابسط والأسهل من ال Dialogs هو رسائل التحذير MessageBox ، صورتها الأبسط بالشكل التالي :


كود :
MessageBox.Show("Welcome ...");
لو جربت معرفة البارميترات التي يمكن ارسالها للدالة Show ستجد 20 overloads ، تتيح لك التحكم بأي شكل في رسائلك التحذيرية ، سنستعرض اثنين منها هنا :

- اظهار رسالة تحذيرية كاملة :
الكود :

كود :
MessageBox.Show("Welcome ...","Title",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);


المظهر :


- اظهار رسالة تحذيرية تخيرك بين عدة حالات ، مع جعل واحد منها افتراضياً .
C#:

كود :
DialogResult reslt = MessageBox.Show("Do you want to save", "Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation,MessageBoxDefaultButton.Button1);
if (reslt = DialogResult.Yes)
MessageBox.Show("you want to save.");
else if (reslt = DialogResult.No)
MessageBox.Show("you don't want to save.");
else if (reslt = DialogResult.Cancel)
MessageBox.Show("you cancel this operation.");


vb.net:


كود :
Dim reslt As DialogResult = MessageBox.Show("Do you want to save", "Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
If reslt = DialogResult.Yes Then
MessageBox.Show("you want to save.")
ElseIf reslt = DialogResult.No Then
MessageBox.Show("you don't want to save.")
ElseIf reslt = DialogResult.Cancel Then
MessageBox.Show("you cancel this operation.")
End If

هناك عدة اختيارات أخرى ، تتيح لك اظهار ملف مساعدة ... الخ ، يمكنك استعراضها جميعاً من خلال هذا الرابط :
http://msdn.microsoft.com/en-us/libr...ebox.show.aspx
}}}
تم الشكر بواسطة:
#14
Dialogs Controls .

بعد ان تعرفنا على النوع الأبسط من المربعات الحوارية وتعلمنا كيفية انشاءها ، جاء الدور الآن على تعلم كيفية استخدام المربعات الحوارية الأساسية الموجودة ضمن الأدوات ...


Color Dialog :
مربع اختيار الألوان ، قم باضافته من ال ToolBox وسننشأ الآن مثالاً بسيطاً لتغيير لون الخلفية لصورة مثلاً :


ضف صورة picturebox زر أمر بسيط واكتب فيه الأمر التالي :
C#:

كود :
[FONT=Tahoma]if (colorDialog1.ShowDialog() == DialogResult.OK)[/FONT]
[FONT=Tahoma]pictureBox1.BackColor = colorDialog1.Color;[/FONT]
[FONT=Tahoma]else[/FONT]
[FONT=Tahoma]MessageBox.Show("cancel operation");[/FONT]

vb.net:

كود :
[FONT=Tahoma]If colorDialog1.ShowDialog() = DialogResult.OK Then [/FONT]
[FONT=Tahoma]pictureBox1.BackColor = colorDialog1.Color [/FONT]
[FONT=Tahoma]Else [/FONT]
[FONT=Tahoma]MessageBox.Show("cancel operation") [/FONT]
[FONT=Tahoma]End If [/FONT]
هناك بعض الخصائص الاضافية في مربع الحوار هذا لكنها غير شائعة الاستخدام مثل AllowFullOpen والتي تستطيع منع المستخدم من اختيار غير الالوان القياسية بالشكل التالي مثلاً :


والخاصية fullopen التي تظهرها بالكامل مباشرة بالشكل التالي مثلاً :


رابط تفصيلي من مايكروسوفت :
http://msdn.microsoft.com/en-us/libr...lordialog.aspx
}}}
تم الشكر بواسطة:
#15
Font Dialog :

يستخدم لاختيار الخطوط ، سنقوم الآن بعمل مثال لتغيير خط مربع نص :


C#:

كود :
[FONT=Tahoma]fontDialog1.ShowColor = true;[/FONT]
[FONT=Tahoma]fontDialog1.Font = textBox1.Font;
fontDialog1.Color = textBox1.ForeColor;[/FONT]
[FONT=Tahoma]if (fontDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Font = fontDialog1.Font;
textBox1.ForeColor = fontDialog1.Color;
}[/FONT]

vb.net:

كود :
[FONT=Tahoma]fontDialog1.ShowColor = True [/FONT]
[FONT=Tahoma]fontDialog1.Font = textBox1.Font
fontDialog1.Color = textBox1.ForeColor [/FONT]
[FONT=Tahoma]If fontDialog1.ShowDialog() = DialogResult.OK Then
textBox1.Font = fontDialog1.Font
textBox1.ForeColor = fontDialog1.Color
End If [/FONT]


رابط تفصيلي من مايكروسوفت :
http://msdn.microsoft.com/en-us/library/system.windows.forms.fontdialog(VS.80).aspx
}}}
تم الشكر بواسطة:
#16
Open And Save Dialogs :

اشهر نوعين من المربعات الحوارية ، في العادة يتم استخدامهم لتحديد عملية فتح الملفات أو تحديد مكان حفظها ، سنقوم بعمل مثال بسيط نقوم من خلال بفتح ملف نصي ، التعديل عليه ومن ثم حفظه :
اضف مربع نص بسيط واجعل خاصية Multiline=True ، ضف زر للحفظ وآخر للفتح ، وأخيراَ لن نقوم باضافة OpenFileDialog و SaveFileDialog بل سنضيفهم من خلال الكود مباشرة .

أول عملية لدينا هي استخدام المربع الحواري لتحديد الملفات النصية ومن ثم اختيار واحد منها :
C#:

كود :
string fileToOpen="";
OpenFileDialog openFile = new OpenFileDialog();
openFile.DefaultExt = "txt";
openFile.Filter = "Word documents (*.txt)|*.txt";
if (openFile.ShowDialog() == DialogResult.OK)
fileToOpen = openFile.FileName;


vb.net:

كود :
Dim fileToOpen As String = ""
Dim openFile As New OpenFileDialog()
openFile.DefaultExt = "txt"
openFile.Filter = "Word documents (*.txt)|*.txt"
If openFile.ShowDialog() = DialogResult.OK Then
fileToOpen = openFile.FileName
End If


الآن اصبح لدينا مسار الملف في متغير ، سنقوم بعملية وضع محتوياته في مربع نص بطريقة تعلمناها سابقاً :
C#:

كود :
if (fileToOpen != "")
{
using (System.IO.StreamReader s1 = System.IO.File.OpenText(fileToOpen))
{
string input = null;
textBox1.Text = "";
while ((input = s1.ReadLine()) != null)
{
textBox1.Text += input;
}

}
}

vb.net:

كود :
If fileToOpen <> "" Then
Using s1 As System.IO.StreamReader = System.IO.File.OpenText(fileToOpen)
Dim input As String = Nothing
textBox1.Text = ""
While (input = s1.ReadLine()) IsNot Nothing
textBox1.Text += input


End While
End Using
End If

الآن سنستخدم مربع حوار الحفظ لتحديد المكان الذي نود فيه حفظ الملف :
C#:

كود :
string fileToSave = "";
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
fileToSave = saveFileDialog1.FileName;


vb.net:

كود :
Dim fileToSave As String = ""
Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
fileToSave = saveFileDialog1.FileName
End If

وكما تعلمنا سابقاً ، نقوم بحفظ الملف النصي في المسار الذي قام المستخدم باختياره :
C#:

كود :
if (fileToSave!="")
{
using (System.IO.StreamWriter w1 = System.IO.File.CreateText(fileToSave))
{
w1.WriteLine(textBox1.Text);
}
}


vb.net:

كود :
If fileToSave <> "" Then
Using w1 As System.IO.StreamWriter = System.IO.File.CreateText(fileToSave)
w1.WriteLine(textBox1.Text)

End Using
End If


هناك بعض الخصائص الاضافية لكلا الكائنين ، يمكنك الاطلاع على المزيد عنهما هنا :
http://msdn.microsoft.com/en-us/library/aa287592(VS.71).aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.savefiledialog.aspx
حيث يمكنك تحديد نوع من الملفات او قراءة اسم المجلد او اسم الملف فقط ، تحديد أكثر من ملف للفتح ... الخ .
}}}
تم الشكر بواسطة:
#17
print Dialog :

يستخدم للتحكم في خصائص عملية الطباعة ، يمكن ان يفيدك الرابط التالي من مايكروسوفت :

http://msdn.microsoft.com/en-us/library/system.windows.forms.printdialog.aspx

إلى هنا نكون قد انتهينا من محتويات هذا الدرس ، في الدرس القادم سنتعرف على كيفية التقاط أحداث الكيبورد والماوس .

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم