تقييم الموضوع :
- 0 أصوات - بمعدل 0
- 1
- 2
- 3
- 4
- 5
معلومة ::: TreeView
|
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
يمكن أن نعرض مسار عنصر معين - وهذا شئ مهم لو أردت أن تعرض مسار حساب معين مثلاً كفكرةلاستخدام هذا الأمر
بالطبع يجب قبل أن نستخدم أمر يعتمد على عنصر محدد - أن نتأكد أن العنصر محدد كما تعودنا
كود :
If TreeView1.SelectedNode Is Nothing Then
Exit Sub
End If
هناك خاصية خاصة بأداة TreeView اسمها PathSeparator يمكن أن نسند لها قيمة كفاصل بين المسار والمسار
كود :
TreeView1.PathSeparator = " >> "
ثم نظهر المسار الآن
كود :
MessageBox.Show(TreeView1.SelectedNode.FullPath)
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
العناصر بجانبها كائن اختيار CheckBox
لنظهر ذلك نقوم بتعديل الخاصية CheckBoxes ونجعلها تساوي True
أو بالكود
كود :
TreeView1.CheckBoxes = True
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
تكلمنا فى الرد السابق عن اظهار مربع تحديد للعنصر CheckBox
ونستفيد به بحيث لو المستخدم اختار عدة اختيارات وتريد تنفيذ أمر ما فى حالة اختياره
كود :
If TreeView1.SelectedNode Is Nothing Then
Exit Sub
End If
If TreeView1.SelectedNode.Checked Then
MessageBox.Show("العنصر محدد")
Else
MessageBox.Show("العنصر غير محدد")
End If
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
الآن لنري أمر ذوى جدوي وعملى أكثر
هل فكرت فى عرض أى ملف XML فى شجرة العرض TreeView
تعال نقوم بذلك
أولأ لابد أن نصل لملف Xml
ولنقوم بذلك يمكن أن ندرج أداة OpenFileDialog أو أن ننشأها بالكود
كود :
' أنشأنا متغير اسميناه dlgOpen من نوع OpenFileDialog
Dim dlgOpen As New OpenFileDialog
' سنقوم بعمل فلتر له لنحدد نوع الملفات التى يطلع عليها هذا الكائن
dlgOpen.Filter = "(*.xml)|*.xml"
' فى حالة تحديد ملف من قبل المستخدم
If dlgOpen.ShowDialog = Windows.Forms.DialogResult.OK Then
' قمنا بتعريف متغير xmlDoc من نوع XmlDocument
Dim xmlDoc As New XmlDocument
' جعلناه يساوي الملف XML الذى اختاره المستخدم
xmlDoc.Load(dlgOpen.FileName)
' عرفنا متغير xmlRoot من نوع XmlElement وجعلناه يساوي xmlDoc.DocumentElement
' بحيث نصل للعناصر التى فى ملف XML
Dim xmlRoot As XmlElement = xmlDoc.DocumentElement
' عرفنا متغير trvRoot من نوع TreeNode
Dim trvRoot As New TreeNode
' قمنا فى هذا الاجراء بمسح أى عنصر موجود فى شجرة العرض TreeView
' فى حالة لو وجد فيها عناصر من ملف سابق
TreeView1.Nodes.Clear()
' ارسلنا المتغير xmlRoot و المتغير trvRoot كوسيطات للاجرائية MakeTree
' المسئولة عن تكوين العناصر فى شجرة العرض TreeView وسنتكلم عليها الآن
MakeTree(xmlRoot, trvRoot)
' قمنا باضافة العناصر لشركة العرض TreeView
TreeView1.Nodes.Add(trvRoot)
End If
الاجرائية MakeTree
حتى نستخدمها لابد أن نعلن فى قسم الكود العام عن فضاء الاسم الخاص بالتعامل مع ملفات XML
كود :
Private Sub MakeTree(ByVal xmlParent As System.Xml.XmlElement, ByRef trvParent As TreeNode)
If xmlParent.HasChildNodes Then
For I As Integer = 0 To xmlParent.ChildNodes.Count - 1
If xmlParent.ChildNodes(I).GetType.ToString().IndexOf("XmlElement") >= 0 Then
Dim xmlChild As XmlElement = xmlParent.ChildNodes(I)
Dim trvChild As New TreeNode
trvChild.Text = xmlChild.Name
If xmlChild.HasChildNodes Then
MakeTree(xmlChild, trvChild)
End If
trvParent.Nodes.Add(trvChild)
ElseIf xmlParent.ChildNodes(I).GetType.ToString().IndexOf("XmlText") >= 0 Then
Dim trvChild As New TreeNode
trvChild.Text = xmlParent.ChildNodes(I).InnerText
trvParent.Nodes.Add(trvChild)
End If
Next
End If
End Sub
إذا أردت تكوين ملف XML كمثال
قم بانشاء ملف نصي وضع فيه هذا الكود
كود :
<?xml version="1.0" encoding="shift_jis"?>
<ADDRESS_DATA>
<ZIP>010-3012</ZIP>
<ADDRESS>Egypt-Cairo</ADDRESS>
<NAME>BADRMEDIA</NAME>
</ADDRESS_DATA>
وعند حفظ الملف ضع له اسم مع الملحقة .XML
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
العناصر متباعدة عن الجذر بمسافة كبيرة غير ما كنا نعتاد
كيف ذلك ؟
الخاصية Indent هى المسئولة عن ذلك
غير القيم فيها وستعرف الفرق
كود :
TreeView1.Indent += 2
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
فى المثال المرافق لنا أن عند تحديد عنصر يتم تحديد الصف بالكامل
كيف ذلك ؟
هذا هو المثال المرافق لنا
كود :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rootNode As New TreeNode
Dim childNode1 As New TreeNode
Dim childNode2 As New TreeNode
Dim grandChildNode1 As New TreeNode
Dim grandChildNode2 As New TreeNode
Dim grandChildNode3 As New TreeNode
rootNode.Text = "الجذر الرئيسى"
childNode1.Text = "الأبن1"
childNode2.Text = "الأبن2"
grandChildNode1.Text = "الحفيد1"
grandChildNode2.Text = "الحفيد2"
grandChildNode3.Text = "الحفيد3"
childNode1.Nodes.Add(grandChildNode1)
childNode1.Nodes.Add(grandChildNode2)
childNode2.Nodes.Add(grandChildNode3)
rootNode.Nodes.Add(childNode1)
rootNode.Nodes.Add(childNode2)
TreeView1.Nodes.Add(rootNode)
TreeView1.ExpandAll()
End Sub
لكن بعد أن ننشأه نضع هذا الكود
كود :
TreeView1.ShowLines = False
TreeView1.FullRowSelect = True
فيجب أولاً جعل الخاصية ShowLines = False
ثم بعد ذلك نجعل الخاصية FullRowSelect = True
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
سنجد أن الخط بين العناصر لونه أزرق وذلك من الخاصية
LineColor
كود :
TreeView1.LineColor = Color.Blue
|
المواضيع المحتمل أن تكون متشابهة . |
الموضوع : |
الكاتب |
الردود : |
المشاهدات : |
آخر رد |
|
معلومة :: تعلم كيف تحفظ صورة في My.Settings بدون الإحتياج إلى مسارها! |
أسامة أحمد |
4 |
6,097 |
18-07-21, 02:53 AM
آخر رد: kebboud
|
|
معلومة ::: ListBox |
Blue Sky |
14 |
22,013 |
14-11-16, 11:32 PM
آخر رد: فارس جراح
|
|
معلومة مهمه فى المصفوفات |
ali.alfoly |
2 |
3,729 |
30-08-13, 02:25 AM
آخر رد: ali.alfoly
|
|
من المنتدى القديم - معلومة ::: ProgressBar ( للاخ BADRMEDIA ) |
المبرمج علي نوري |
2 |
3,823 |
23-08-13, 11:17 PM
آخر رد: nin9e
|
|
من المنتدى القديم - معلومة ::: CheckBox ( للاخ BADRMEDIA ) |
المبرمج علي نوري |
1 |
2,917 |
30-11-12, 05:54 PM
آخر رد: مبرمج أوتار
|
|
معلومة :: الحل لمشكلة الخطأ في الكود For Each i As Button In Me.Controls |
Aly El-Haddad |
2 |
3,563 |
10-11-12, 09:15 PM
آخر رد: Mr. DotNet
|
|
معلومة : Partial Class |
RaggiTech |
1 |
2,668 |
06-10-12, 11:03 PM
آخر رد: RaggiTech
|
|
معلومة : TryCast مهمة |
RaggiTech |
0 |
2,705 |
06-10-12, 11:02 PM
آخر رد: RaggiTech
|
|
معلومة : XML Comments مهمة |
RaggiTech |
1 |
2,422 |
06-10-12, 11:01 PM
آخر رد: RaggiTech
|
|
معلومة - الاستثناءات ( Exceptions ) |
RaggiTech |
0 |
2,453 |
06-10-12, 11:00 PM
آخر رد: RaggiTech
|
يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم