FemTo

Tree View

36 ردود في هذا الموضوع

treeview2.JPG

هذه الاداه مهمه فى تنظيم البرنامج لو كان فيه استعراض لملفات او اشياء متشعبه من بعض , كما تعطى مظهر جمالى

كيف تدرج الاداه:

....................

treeview.JPG

كيفيه تنظيم الشكل الشجرى :

.............................

1- الطريقه الاولى :

..........................

تعريفات:

............

Node: العقده او النقطه اللى بيضرب عليها الميتخدم كليك

Relative: عباره عن العقده المنسوبه الليها (الاب) العقده الحاليه (الابن)

Relationship: نوع العلاقه بين الاب ولابن

Key : المفتاح وهو بمثابه خاصيه النيم بس بالنسبه للعقده, وهو عباره عن الاسم التى تعرف بيه العقده بين العقد الاخرى

Text: وهو النص الذى يظهر على الشاشه مجاور للعقده

Image : وهى الصوره الاصليه للعقده فى حاله عدم اختيارها من المستخدم

Selected image : وهى الصور التى ستظهر عند اخيار العقدة من قبل المستخدم

ديه معنى المصطلحات اللى بتظهر اثناء تنظيم الشكل الشجرى .. ولو مفهمتش , بالتطبيق كل شى حيكون واضح ان شاء الله.

طريقه كتابه الكود :

.......................

 Treeview.Nodes.Add , Relative,Relationship,Key,Text,image,Selecteimage

مثال 1 :

...........

TreeView1.Nodes.Clear
TreeView1.Nodes.Add , , "ch1", "Mohmed Family"
TreeView1.Nodes.Add "ch1", tvwChild, "ch2", "Kariem"
TreeView1.Nodes.Add "ch1", tvwChild, "ch3", "Asm3iel"
TreeView1.Nodes.Add "ch1", tvwChild, "ch4", "Morsee"
TreeView1.Nodes.Add "ch1", tvwChild, "ch5", "TOTO"

وسيكون الناتج:

................

treeview3.JPG

ملاحظات :

................

1- عند تعريف الاب فلا هو منسوب لاحد ( فليس له اب ) , ولذالك لاتوجد له علاقه باحد يسبقه فتكتب اول خانتين هكذا , , .

2- يمكنك اختيار المفتاح كما تشاء , ولكن من الافضل ان اتختاره دال على موضوع حتى لا تحصل لخبطه ..

3- ممكن ان يكون الابن اب لابناء اخرين , فمثلا لو كنا عاوزين نخرج مثلاا من Kariem ابن اسمه Ahmed فنضيف الكود:

TreeView1.Nodes.Add "ch2", tvwChild, "ch6", "Ahmed"

كيفيه عرض الصور:

.........................

لو كنت حاولت مع الاداه ديه قبل كده ودخلت فى قائمه Customize كنت حتلاقى حاجه اسمها Picture بس ديه مش اللى احنا عاوزينها..

الصوره ديه عباره عن ايقونه الماوس لما يمر على الاداه وكمان مش حتظهر الايقونه ديه الا لو كانت الخاصيه Mousepointer=99 للاداه

treewiew4.JPG

>>>> فالادراج الصور واستخدامها بجوار العقد نستخدم الاداه ImageList .. وهى تم ادراجها مع الاداه TreeView - راجع الصوره الاولى-.

خطوات العرض :

........................

1- اهم خطوه فى الموضوع انك تربط الTreeView بال ImageList ....كما فى لاصوره من خاصيه Customize فى الTreeView ونختار الImageList بتاعتنا..

treeviw5.JPG

2- افتح خاصيه Customize لImageList واختار Picture ومنها اختار Insert Pictures واضف الصور اللى انتا عاوزها , ومتنساش تكتب اسم خاص للصوره فى المربع اللى اسمه Key علشان نقدر نتعامل معاها فى الTreeView.

treeview6.JPG

3- تعديل الكود السابق باستخدام خاصيتى Image وSelectedImage لعرض الصوره كما تريد وسيصبح الكود :

						TreeView1.Nodes.Clear
TreeView1.Nodes.Add , , "ch1", "Mohmed Family", "KOKO"
TreeView1.Nodes.Add "ch1", tvwChild, "ch2", "Kariem", "SOSO"
TreeView1.Nodes.Add "ch1", tvwChild, "ch3", "Asm3iel", "SOSO"
TreeView1.Nodes.Add "ch1", tvwChild, "ch4", "Morsee", "SOSO"
TreeView1.Nodes.Add "ch1", tvwChild, "ch5", "TOTO", "SOSO"
TreeView1.Nodes.Add "ch2", tvwChild, "ch6", "Ahmed", "SOSO"

وسيكون الناتج :

treeview7.JPG

الطريق الثانيه :

..................

TreeView1.Nodes.Clear
Dim k As Node
Set k = TreeView1.Nodes.Add
With k
.Text = "Mohmed Family"
.Key = "ch1"
.Image = "KOKO"
.SelectedImage = "TOTO"
End With

Set k = TreeView1.Nodes.Add
With k
.Text = "Ahmed"
.Key = "ch2"
Set .Parent = TreeView1.Nodes("ch1")
.Image = "KOKO"
.SelectedImage = "TOTO"
End With

Set k = TreeView1.Nodes.Add
With k
.Text = "Bor3e"
.Key = "ch3"
Set .Parent = TreeView1.Nodes("ch1")
.Image = "KOKO"
.SelectedImage = "TOTO"
End With


Set k = TreeView1.Nodes.Add
With k
.Text = "Osman"
.Key = "ch4"
Set .Parent = TreeView1.Nodes("ch1")
.Image = "KOKO"
.SelectedImage = "TOTO"
End With

لا تختلف عن الطريقه الاولى .... بس كل اللى فيها:

1- عرفت متغير نوعه " عقده" ..حلوه عقده اووى...

2- خليت الK بيمثل الامر العادى بتاع اضافه عقده وهذا كله للتسهيل فقط.... ولو عاوز تكتب الكود فى كل سطر براااحتك..

3- وكلنا عارفين With واللى مش عرفها تعالى نفتكرها :

..........................................................................

لو احنا عندنا TextBox وعاوزين نغير كذا حاجه فيه مثلا ..النص اللى فيه , حجم الخط , خط تخين ...

حنكتبها ازاى:

........................

	   Text1.Text = "KoO"
Text1.FontBold = True
Text1.FontSize = 20

ودول حبه صغيرين افرض انك عاوز تغير حاجات كتيره

فاستخدمنا With للتسهيل :

....................................

  With Text1
.Text = "kok"
.FontBold = True
.FontSize = 20
End With

4- ومنها نظبط الخواص زى ما اتفقنا مع ملاحظه:

................................................................

عند ربط عقده ابن بعقده اب نستخدم

 Set .Parent = TreeView1.Nodes("ch1")

حيث الch1 هو الKey للعقده الاب ...

5- الفرق بين الطريقتين....

الطريقه الاولى : بتعرض الاب او الاباء فقط ولتعرض الابناء يجب ان تضغط عليهم

الطريقه الثانيه : بتعرض كل اب والابناء المتفرعين منه

وكل طريقه وحسب احتاجك فى البرنامج .. وارجو ان اكون وفقت فى الشرح.... واى استفسار انا موجود...

ملاحظه:

..........

المشروع المرفق فيه الطريقتين.

treeview_project.rar

تم تعديل بواسطه HnHn
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشكوووووووووووووووووووووووووووووووور على الشرح الرائع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

انت دائما صاحب حل الصعاب

شكرا كثيرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمه الله وبركاته . . .

شكرا لك يا اخي وجزاك الله خيرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اهلا وسهلا بيكم..وياريت اكون قد وفقت فى الشرح وانتظروا دروس احسن , وياريت تكتبوا اقتراحتكم فى موضوع مشروع المبرمج العربى , وهو فى توقيعى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشكور وتسلم على المرور

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أستاذى femto

اشكرك على شرحك الاكثر من الرائع

واتمنى الدوام

فانك تقدم رساله جميله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اهلا اخ فمتو فينك يا راجل من زمان وفين دروسك

جهد جميل بس كان الافضل تحط عنوان شرح ل Microsoft windows common controls اذا كنت ناوى تكمل المجموعة

اذا وافقت ارجوا من الاخ هانى HnHn ان يغير العنوان ويقوم بتثبيت الموضوع وشكرا

ياريت يكون موضوعك عن ال Listview لانه هيكون مكمل لموضوع شرح ادوات الكود جوك لانى مش هقدر اشرح ادوات ميكرسوفت كمان

ربنا يوفقك اخى وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اكيد موافق..بس حكمل ان شاء الله لما تنتهى امتحانات الميد -تيرم ...وربنا يجزيك خير يارب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ما شاء الله بارك الله فيك فعلا احسنت ووفيت ....

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

واضم صوتي لصوت الاخ حريف في شرح Listview لانها مهمة جدا.......

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
اكيد موافق..بس حكمل ان شاء الله لما تنتهى امتحانات الميد -تيرم ...وربنا يجزيك خير يارب

ان شاء الله بالتوفيق لكن امتحانات الميد تيرم متاخرة عندكم قوى كدة ليه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله وبركاته

الصراحه انت جيت في الصح كتيير من الاعضاء يتجاهلون استخدام هذه الاداه في برامجهم لأيجاد صعوبه في التعامل معها اما الان ............

الف شكر فيما تقدم .......

A7med_prof

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شرح جميل كالعادة

مشكور أخي FemTo

و ننتظر منك الشيء الجميل و المتميز كما تعودنا

اتمنى لك التوفيق

و السلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مع الاعتذار لصاحب الموضوع أحببت أن اضيف هذه المعلومة، وهي لجعل أداة الشجرة تقرأ من جهة اليمين:

تضيف في الجينرال:

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Const WS_EX_LAYOUTRTL = 4194304
Const GWL_EXSTYLE = -20

وتضيف في الفورم لود

SetWindowLong TreeView1.hwnd, GWL_EXSTYLE, WS_EX_LAYOUTRTL

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا على شرحك الرائع

أستاذ FemTo

ولكن ارجو من حضرتك

عند الضغط على

Private Sub Listview1_DblClick()

كنت عاوز كل Item فى List يظهر فريم الخاص به

End Sub

ولك جزيل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخيرا ;)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اخ Bryan لا توجد طريقة مباشرة لفعل هذا لعدم وجود حدث Itemdbclic لكن

اليك الكود التالى

Private Sub WndView_DblClick()

For A = 1 To WndView.ListItems.Count
If WndView.ListItems.Item(A).Selected = True Then

' اكتب الكود هنا





End If
Next

End Sub

هذا على اساس ان الاداه اسمها Wndview

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لك أخي الكريم على هذه الشرح الرائع و الوافي

بارك الله فيك .. و الى الامام ..

مع خالص حبي و إحترامي

أخوك زرياب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ممكن نعرف كيفية البحث في الشجرة مع استخدام التالي في البحث وتحديد العنصر الذي تم البحث عنه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .