PDA

View Full Version : حذف و اضافه کردن Nodeها در TreeView بصورت داینامیک



mrmehdi
دوشنبه 22 آذر 1395, 15:36 عصر
سلام
دوستان من داخل پروژه خودم نیاز دارم TreeView نودهاش این قابلیت رو داشته باشن که بصورت دستی از طریق کاربر اضافه یا حذف بشن.
143731

ساختار TreeView به این صورت هست.
یه Node والد اصلی (اسکرین) که شامل چند Node به اسم (پروگرم) میشه و هر نود پروگرم شامل چندین نود متن ،عکس ، ویدیو میتونه داشته باشه.
قوانین هم به این صورت هست که فقط یه نود والد (اسکرین) میتونه باشه.
نودهای پروگرم محدودیتی ندارن.
توی هر پروگرم هم محدودیتی از تعداد نود های عکس و متن و فیلم وجود نداره.
نود های عکس متن و فیلم اجازه ندارن در نود والد اصلی ایجاد بشن. اجازه ندارن خودشون هم نود داشته باشن.
نود پروگرم هم نمیتونه داخل خودش دوباره نود پروگرم داشته باشه.
من سه تا کلاس تعریف کردم:
TextObject
ImageObject
VideoObject
که هرکدوم یه سری خصوصیت هایی دارن
بعد یه کلاس به اسم ProgramObject که شامل سه تا آبجکت بالا بصورت لیست یعنی List <TextObject> TextObjectList و برای باقی اشیا هم به همین صورت... اضافه کردم برای نگهداری خواص اون سه تا آبجکت.
و این ProgramObject رو در برنامه اصلی یه لیست از نوع ProgramObject ساختم تا بتونه آبجکت هایی که درون هر نود پروگرم قرار میگیره رو نگه داره بصورت لیست و بشه حذف و اضافه کرد.
دوستان میشه کمک کنید چطور میتونم اون قوانین رو روی TreeView اعمال کنم و همچین حذف و اضافه کردن ها رو
با تشکر

windowsyar
دوشنبه 22 آذر 1395, 22:05 عصر
سلام
امیدوارم درست متوجه منظورتان شده باشم و تونسته باشم کمکتون بکنم
چند نکته :
1.متاسفانه اون نود screen که تمامی نود ها رو در بر میگیره رو نتونستم درست کنم (البته برای برنامه های کاربردی چنین چیزی لازم نیست )
2.هر تعداد می خواهید می توانید program اضافه و حذف کنید
3.به program ها می توانید به تعداد دلخواه عکس فیلم و متن اضافه کنید.

mrmehdi
پنج شنبه 25 آذر 1395, 22:30 عصر
سلام
امیدوارم درست متوجه منظورتان شده باشم و تونسته باشم کمکتون بکنم
چند نکته :
1.متاسفانه اون نود screen که تمامی نود ها رو در بر میگیره رو نتونستم درست کنم (البته برای برنامه های کاربردی چنین چیزی لازم نیست )
2.هر تعداد می خواهید می توانید program اضافه و حذف کنید
3.به program ها می توانید به تعداد دلخواه عکس فیلم و متن اضافه کنید.

سلام
بسیار متشکرم دوست عزیز
منم با روشی مشابه تونستم بنویسم.
نود اسکرین هم ساختم.
کافی است یه متغیر از نوع TreeNode رو بصورت عمومی تعریف کنیم و به این صورت عمل کنیم:
TreeNodeOb=treeview1.nodes.add
و برای باقی نودهای پروگرم TreeNodeObj استفاده بشه.
متشکرم