Visual Basic Online Course - TreeView Control lesson Part4
بسم الله الرحمن الرحيم
توقفنا فى الجزء الثالث السابق عند خاصية Style .
و موضوع اليوم ان شاء الله عن خواص الـ Nodes .
Nodes Properties - خواص الـ Nodes
تعريف الـ Node : هى كائن Object من كائنات اداة Control الـ TreeView بينما الـ Nodes هى مجموعه Collection من الـ Nodes .... و الفرق كما ذكرنا أن الـ Nodes مرتبطه ببعضها البعض و كلها معا تمثل TreeView واحده و يميز الـ Node عن الاخرى الـ Index و الـ Key و كلاهما مميز بينما الـ Node بمفردها هى Object مستقل له Index و Key و لها خصائص للتعامل معها و لكن التعامل معها يكون عن طريق الـ TreeView حيث :
الاكواد :
TreeView.Nodes - تمثل مجموعة الـ Nodes داخل TreeView واحده .
TeeView.Nodes.Index - تمثل الـ Node المميزه برقم الـ Index المميز لها .
الخصائص :
Bold Property (Windows Common Controls)
Checked Property (Windows Common Controls)
Child Property (Node Object)
Children Property
Count Property (ActiveX Controls)
Expanded Property
ExpandedImage Property
FirstSibling Property
FullPath Property
Image Property (ActiveX Controls)
Index Property (ActiveX Controls)
Item Property (ActiveX Controls)
Key Property (ActiveX Controls)
LastSibling Property
Next Property
Parent Property (Node Object)
Previous Property (Node Object)
Root Property (Node Object)
Selected Property (ActiveX Controls)
SelectedImage Property
Sorted Property (TreeView Control)
Tag Property (ActiveX Controls)
Text Property (ActiveX Controls)
Visible Property (ActiveX Controls)
Checked Property (Windows Common Controls)
Child Property (Node Object)
Children Property
Count Property (ActiveX Controls)
Expanded Property
ExpandedImage Property
FirstSibling Property
FullPath Property
Image Property (ActiveX Controls)
Index Property (ActiveX Controls)
Item Property (ActiveX Controls)
Key Property (ActiveX Controls)
LastSibling Property
Next Property
Parent Property (Node Object)
Previous Property (Node Object)
Root Property (Node Object)
Selected Property (ActiveX Controls)
SelectedImage Property
Sorted Property (TreeView Control)
Tag Property (ActiveX Controls)
Text Property (ActiveX Controls)
Visible Property (ActiveX Controls)
و سنقوم بدراسة كل و خاصيه على حدى بالتفصيل .....
أولا : خاصية Bold
و هى خاصية عامه للأدوات ليست للـ Node فقط و وظيفتها تغيير حالة الخط String من الحاله العاديه الى الحالة السميكه (سميك - عادى)
و الكود الخاص بها :
Object.Bold = Boolean
|
---|
حيث Object تشير الى Node فى هذا المثال . و Boolean أى ان النتيجه ستكون True أو False أو (0 - 1) و سنبدأ الان بتحديث المثال الذى نعمل عليه :
سنضيف TreeView5 الى الفورم و سنضيف Command5 كما بالصورة (1)
صورة رقم 1 |
سنقوم بتسمية Command5 باسم Bold و فى المثال عند الضغط على مفتاح Bold فان الـ Node المختاره بالماوس تتحول الى Bold سواء كانت Root أو Child .
الاكواد :
فى الحدث Form_Load
بعد اخر سطر كود سنضيف الاتى :
Dim Nodd As Node
Set Nodd = TreeView5.Nodes.Add(, , "P", "Root")
Set Nodd = TreeView5.Nodes.Add("P", tvwChild, "P1", "Child1")
Set Nodd = TreeView5.Nodes.Add("P", tvwChild, "P2", "Child2")
Set Nodd = TreeView5.Nodes.Add("P", tvwChild, "P3", "Child3")
Set Nodd = TreeView5.Nodes.Add(, , "PP", "Root1")
Set Nodd = TreeView5.Nodes.Add("PP", tvwChild, "PP1", "Child1")
و هذا سيقوم بانشاء Nodes كما بالشكل (2) عند تشغيل البرنامج :
شكل رقم 2 |
ثم فى الحدث Command5_Click نضع الكود :
TreeView5.SetFocus
Dim n_INDEX As Integer
n_INDEX = TreeView5.SelectedItem.INDEX
TreeView5.Nodes.Item(n_INDEX).Bold = True
حيث :
- خاصية SetFocus للـ TreeView عند تشغيل البرنامج تمنع رسالة الخطأ Run-Time Error 91 حيث عند الضغط على Command5 المفروض ان يعود بقيمة و اذا لم تكن خاصية SetFocus للـ TreeView5 متحققة فان القيمة ستكون 0 و بالتالى تظهر رسالة الخطأ Run-Time Error 91 و التى تفيد أن القيمة العائده عير مضبوطه .
- ثم نقوم بتعريف متغير n_INDEX كمتغير رقمى Integer لتخزين القيمة العائده من الـ TreeView عند الضغط على أحد مكوناتها و هو Node المراد معرفة رقم الـ Index الخاص به لتغيير حالة خطه .
- المتغير n_INDEX = رقم الـ Index للعنصر المختار من اداة الـ TreeView5
- خاصية Bold للعنصر ذو رقم الـ Index المساوى للرقم العائد من ضغطة الـ Click عليه وهو True = n_INDEX
- قم بتجربة البرنامج الان و اضغط على Bold حتى قبل أن تختار Node معين و لاحظ أن خاصية SetFocus فى أول الكود مفيده ثم اختار أى Node و تعامل معه .
ثانيا : خاصية Checked
و هى خاصية عامه للأدوات ليست للـ Node فقط و لها وظيفه فقط عندما تكون خاصية CheckBoxes للـ TreeView متحققة أو = True .
و الكود الخاص بها :
Object.Checked = Boolean |
---|
حيث Object تشير الى Node فى هذا المثال . و Boolean أى ان النتيجه ستكون True أو False أو (0 - 1) قم بفتح المثال و اجعل خاصية CheckBoxes للـ TreeView من شاشة الخصائص = True كما بالصورة (3)
CheckBoxes = True |
ستجد أن شكل الـ TreeView5 تغير و ظهرت CheckBoxes بجوار الـ Nodes .
الان أضف Command6 بجوار و غير اسمه Caption الى Check و اضف الكود الاتى الى الحدث
Command6_Click :
TreeView5.SetFocus
Dim n_INDEX As Integer
n_INDEX = TreeView5.SelectedItem.INDEX
TreeView5.Nodes.Item(n_INDEX).Checked = True
لاحظ أنه لايختلف عن الكود السابق الا كلمة واحده و هى Checked .
قم بتجربة المثال .
ثالثا : خاصية Child
وهى احدى الخصائص التى تنتمى الى Node فقط حيث :
Object.Child
|
---|
و هذه الخاصيه يمكنها تحديد متغيرات الـ Node و ايضا تعود بقيمتها بمعنى :
الـ Child هى نوع من أنواع الـ Node نفسها فعندما تكون الـ Node درجة قرابتها فى الـ TreeView هى Child معناه أنها لها Root أو Parent أو لها Node فى مستوى أعلى منها و هى فرعيه منها. و كونها Child له خصائص مستقله عن الـ TreeView مثل Key و Index و Text و Image ....
اذا Object فى الكود السابق هو Node .
من ناحيه أخرى Child تعنى اننا سنتعامل مع Child و ليس Root و بالتالى فان Object فى الكود السابق هو Node نعم و لكنه ليس Child بل Root أو Parent حيث من خلال سيتم تحديد الـ Child و التعامل معه .
فى المثال قم باضافة Command7 و اسمه Child حيث عند الضغط عليه سيقوم بتغيير خصائص أول Child بعد الـ Root المختار .
و يكون الكود :
TreeView5.SetFocus
Dim n_INDEX As Integer
n_INDEX = TreeView5.SelectedItem.INDEX
With TreeView5.Nodes.Item(n_INDEX).Child
.Key = "New Key"
.Text = "Just This Child"
.BackColor = vbRed
End With
- قم بعمل Run للبرنامج و اضغط على Child و لاحظ عند فتح علامة + تغير الـ Node التى تلى الـ Root الذى قمت باختيارة .
رابعا : خاصية Children
هذه الخاصية وظيفتها تعود بقيمة الـ Child Nodes الموجوده فى Node معين فى الـ TreeView .
Object.Children
|
---|
يفضل استخدام هذه الخاصية قبل التعامل مع الـ Nodes خصوصا الـ Root حيث أنها تتأكد بل و تعود بقيمه هى عدد الـ Child Nodes الموجوده فى الـ Node .
و سنجرى تطبيق صغير على مثالنا :
سنقوم بكتابة كود يعود بعدد الـ Child Nodes اذا كان الـ Node به Child Nodes .
فى نهاية الـ Form بعد اخر كود نقوم بلصق الكود التالى :
Private Sub TreeView5_NodeClick(ByVal Node As MSComctlLib.Node)
'Children Property
If Node.Children > 0 Then
MsgBox "Node Starts With Child Called : " & Node.Child.Text _
& vbCrLf _
& "and it has : " _
& TreeView5.Nodes(TreeView5.SelectedItem.Index).LastSibling.Index _
& " Childs"
End If
End Sub
نقوم بتجربة البرنامج Ctrl+F5 .
و الى هنا نصل الى نهاية خصائص الـ Nodes و يمكنك السؤال عن أى خاصيه فى Comment أو فى الجروب على الفيسبوك .
ننتقل الى الموضوع التالى و هو : ربط الـ TreeView بقاعدة بيانات من نوع MS Access 2003 ان شاء الله الدرس القادم و الاخير - تابعونا .
♥ Visual Basic 6.0 Course Online :
- Automate MS-Access Database in Visual Basic 6.0 though a network
- Visual Basic 6.0 Analog Clock
- Visual Basic 6.0 Temperature Convertor
- Visual Basic 6.0, MS-Access 2003 and Crystal Reports - Phone book
- Visual Basic 6.0, MS-Access 2003 Database and DataGridView
- Visual Basic 6.0 FTP full application source code
- Visual Basic 6.0 Color Picker tool source code
- Visual Basic 6.0 TreeView Control lesson (Part1 - Part 2 - Part3 - Part4 - Part5) Arabic.
- Visual Basic 6.0 - Introduction to Graphics (Part1 - Part2 - Part3)
- Visual Basic 6.0 and MS-Excel 2003 tutorials (Part1 - Part2 - Part3 - Part4 - Part5 - Part6)
Comments
Post a Comment
visual basic 6 source code says (Hi)