PDA

View Full Version : مقادیر آرگومان Relationship از لیست درختی



mostafag
سه شنبه 16 فروردین 1390, 13:28 عصر
با سلام خدمت دوستان عزیز برنامه نویس
دوستان من نمیدونم که مقادیر زیر که برای آرگومان Relationship لیست درختی هست به چه صورت باید استفاده بشه



tvwFirst (0)
tvwLast (1)
tvwNext (2)
tvwPrevious (3)
tvwChild (4)


همینطور که میدونید برای ساخت لیست درختی باید از این کد استفاده بشه


TreeView1.Nodes.Add relative, Relationship, Key, Text, Image


بقیه قسمت ها رو مشکلی ندارم فقط قسمت Relationship برای من سوالاتی پیش آورده که اگه توضیح بدید و بگید هر کدوم از مقادیر بالا برای چه کاری استفاده میشن ممنون میشم


و یه سوال دیگه اینکه من عناوین لیستم رو داخل بانک ذخیره میکنم و وقتی میخوام عنوان جدید ایجاد کنم کاربر یک شاخه رو انتخاب میکنه و بعد متن خودش رو داخل تکست مینویسه و بعد از اینتر اطلاعات داخل بانک ذخیره میشه و لیست دوباره به روز میشه تا اینجا مشکلی نیست مشکل جایی هست که مثلا کاربر بیست تا عنوان رو باز کرده تا عنوان خودش رو اونجا ثبت کنه که بعد بروزرسانی تمامی عنوان ها بسته میشن میخواستم ببینم که برای جلوگیری کردن از بسته شدن عنوان ها باید چیکار کنم

نمیدونم منظورم رو خوب رسوندم یا نه اما اگه بد گفتم بگید تا بیشتر توضیح بدم
منتظر پاسخ هستم
پیشاپیش تشکر میکنم :لبخندساده:

vbhamed
سه شنبه 16 فروردین 1390, 14:34 عصر
سلام

relative : تعيين مي كند اين عنصر جديد زير مجموعه كدوم عنصر قبلي باشه مثلا اگر قرار باشه B زير مجموعه A بشه بايد مقدار اين پارامتر برابر Key مربوط به A باشه

Relationship : نوع اضافه شدن عنصر جديد رو تعيين مي كنه كه بايد به موازات سطح جاري اضافه بشه يا به عنوان زير مجموعه

Key : كليد شناسايي عنصر جديد كه بايد رشته باشه

Text : عنوان عنصر جديد
Image : شماره تصوير عنصر جديد كه از روي ImagList اي كه به Treeview متصل شده شناسايي ميشه

در مورد مشكل بعدي هم بعد از اينكه آپديت رو انجام داديد بايد درختتون رو پيمايش كنيد تا به عنصر جديد اضافه شده برسيد و در حين پيمايش زير مجموعه هاي هر عنصر رو با دستوري مشابه زير باز كنيد


TreeView1.SelectedItem.Expanded = True

SelectedItem همون عنصر جاري هست كه HighLight هم شده

mostafag
سه شنبه 16 فروردین 1390, 16:01 عصر
Relationship : نوع اضافه شدن عنصر جديد رو تعيين مي كنه كه بايد به موازات سطح جاري اضافه بشه يا به عنوان زير مجموعه


سلام
با تشکر از پاسخ شما
مشکل در واقع مربوط به همین آرگومان هست اگه به پست بالا دقت کنید می بینید که مقادیر این آرگومان رو نوشتم اما نمیدونم هر کدوم در چه موقعی باید استفاده بشه (همون tvwchild و غیره که در پست اول نوشتم اونها هر کدوم چه کاری انجام میدن؟؟!! :متفکر:)




در مورد مشكل بعدي هم بعد از اينكه آپديت رو انجام داديد بايد درختتون رو پيمايش كنيد تا به عنصر جديد اضافه شده برسيد و در حين پيمايش زير مجموعه هاي هر عنصر رو با دستوري مشابه زير باز كنيد


TreeView1.SelectedItem.Expanded = True

SelectedItem همون عنصر جاري هست كه HighLight هم شده

خب آیا این کار منطقی هست که من انجام بدم؟؟!!!
شما فرض کنید لیست من دارای 1000 تا عنوانه بعد کاربر اومده شاخه های تو در تو رو انتخاب کرده تا رسیده به جای مشخص شده خب حالا من چطوری میتونم دوباره این شاخه رو پیمایش کنم چطوری بدونم که در مرحله اول کدوم عنوان و در مرحله دوم کدوم عنوان و ...... !!!
اصلا بر فرض این کار رو انجام بدم آیا این کار از سرعت کم نمیکنه یعنی هیچ مشکلی پیش نمیاد؟؟!!!:متفکر:

باز هم از پاسختون تشکر میکنم :لبخندساده:

vbhamed
چهارشنبه 17 فروردین 1390, 10:28 صبح
سلام

برنامه زير رو با كليد F8 خط به خط اجرا و خروجي رو بعد از هر دستور ببينيد



Private Sub Form_Load()
Show
With TreeView1
.Nodes.Add , , "A0", "Hossein"
.Nodes.Add , , "A1", "Rezaey"
.Nodes.Add , , "A2", "Hasani"
.Nodes.Add , , "A3", "Ahmadi"
.Nodes.Add "A1", tvwChild, "A4", "Ali"
.Nodes("A1").Expanded = True
.Nodes.Add "A1", tvwChild, "A5", "Maryam"

.Nodes.Add "A1", tvwNext, "A8", "=========="
.Nodes.Add "A1", tvwPrevious, "A9", "!!!!!!!!!!"

.Nodes.Add "A1", tvwFirst, "A6", "Ali-----------"
.Nodes.Add "A1", tvwLast, "A7", "Maryam**********"
End With
End Sub

mostafag
چهارشنبه 17 فروردین 1390, 12:15 عصر
تشکر
فقط در مورد tvwfirst و tvwlast متوجه شدم که اگه relative رو مشخص نکنیم هم به اول و آخر درخت میره!!! آیا این درسته؟؟!!
و لطفا اگه در مورد سوال دومم هم راهنمایی کنید ممنون میشم.
با تشکر:لبخندساده:

vbhamed
پنج شنبه 18 فروردین 1390, 08:16 صبح
سلام

Relative در مورد tvwFirst, tvwLast براي اين مشخص ميشه كه برنامه عنصر جديد رو به عنوان اولين يا آخرين عنصر در همون شاخه اي از درخت كه عنصري با كليد "A1" وجود داره، اضافه كنه نه در سطوح ديگه

mostafag
پنج شنبه 18 فروردین 1390, 11:01 صبح
خیلی ممنون حامد جان نمیدونم چطور تشکر کنم خیلی از مشکلاتم حل شد! :قلب:

اینطور که من متوجه شدم tvwlast و tvwfirst و tvwnext و tvwPrevious به یک relative احتیاج دارن (البته tvwchild هم احتیاج داره اما اگه کاربر بخواد حذفش کنه با زیرشاخه هاش حذف میکنه!) حالا اومدیم و کاربر کلیدی که مربوط به اینا میشه رو حذف (عنوان رو حذف کنه) بعد چه مشکلی پیش میاد برنامه به هم میریزه دیگه!!!
راه حلی برای این کار وجود نداره؟؟!!!!
تشکر :لبخندساده:

mostafag
جمعه 19 فروردین 1390, 20:13 عصر
دوستان کسی منو راهنمایی نمی کنه؟؟!!
این مسئله آخر خیلی مهمه!!!



اینطور که من متوجه شدم tvwlast و tvwfirst و tvwnext و tvwPrevious به یک relative احتیاج دارن (البته tvwchild هم احتیاج داره اما اگه کاربر بخواد حذفش کنه با زیرشاخه هاش حذف میکنه!) حالا اومدیم و کاربر کلیدی که مربوط به اینا میشه رو حذف (عنوان رو حذف کنه) بعد چه مشکلی پیش میاد برنامه به هم میریزه دیگه!!!
راه حلی برای این کار وجود نداره؟؟!!!!
تشکر

vbhamed
شنبه 20 فروردین 1390, 18:20 عصر
سلام

منظورتون رو از عنوان رو حذف كنه دقيق تر بگيد اما خب وقتي نودي وجود نداره شما نمي تونيد به عنوان زيرمجموعش چيزي رو اضافه كنيد ديگه