PDA

View Full Version : آموزش: Treeview "Change Icon"



aria1o
جمعه 26 آذر 1389, 11:12 صبح
با سلام خدمت دوستان

با چه دستوری میتونم آیکون یکی از شاخه های Treeview رو حذف و بجاش یه آیکون دیگه بزارم ؟

ali190
جمعه 26 آذر 1389, 11:37 صبح
سلام
برای اینکه بتونی به گره هات آیکون اضافه کنی اول باید یه image list به پروژت اضافه کنی
سپس باید در این imagelist عکس قرار بدی و برای هر عکس در imagelist در قسمت key یک نام منحصر به فرد در نظر بگیری ، از این نامها بعداً در انتساب اون عکس به tree view استفاده میشه
حالا رو کنترل treeview ات راست کلیک کن و به بخش properties برو و از کمبوی imagelist نام imagelist ای رو که به پروژت اضافه کردی رو انتخاب کن
حالا میخواهیم توسط کد زیر یک گره به treeview اضافه کنیم:

TV1.Nodes.Add "IAA3", tvwChild, "IAA31", "part1", "c"

میبینی که در آخر کد یک پارامتر اضافه شده :
"c"
این همون key تصویری است که در image list است مقدار داده بودی
در واقع تو ب هاین گره تصویری از imagelist ات رو نام key اون "C" هست رو نسبت دادی
یک پروژه نمونه هم برات درست کردم
امیدوارم به کارت اومده باشه
یاعلی

aria1o
جمعه 26 آذر 1389, 12:08 عصر
داداش از جوابت ممنون
ولی اگه دقت میکردی نوشتم عوض کردن، با گذاشتن عکس مشکلی ندارم ،
میخوام یه حلقه ایجاد کنم که وقتی به شرط رسید آیکون 1 با آیکون 2 تعویض بشه.

ali190
جمعه 26 آذر 1389, 12:28 عصر
ببین من نمیدونم دقیقاً شرطت چیه و چیکار میخوای بکنی
مثلاً توسط دستور زیر میتونی آیکون گره انتخاب شده رو بصورت RunTime تغییر بدی
این دستور رو در یک command بنویس:

Me.TV1.SelectedItem.Image = "d"

حالا روی هر گره که می ایستی این دکمه رو فشار بده ، عکس تغییر میکنه
برای گره یا گره های انتخابیت 1001 راه وجود داره که از طریق این دستور میتونی آیکونشون رو تغییر بدی
مثلاً محدداً یک دکمه در پروژه ات اضافه کن و دستور زیر رو درش بنویس:

Dim xNode As Node
For Each xNode In TV1.Nodes
If xNode.Children <> 0 Then
xNode.Image = "a"
ElseIf xNode.Children = 0 Then
xNode.Image = "b"
End If
Next
ملاحظه میکنی که با این دستور اگر گره ای حاوی فرزند باشه آیکون "a" براش set میشه و اگر فرزندی نداشته باشه آیکون "B" براش set میشه
به همین راحتی
اگر مشکلت حل نشد سورست رو اینجا بذار تا ویرایش بر روی سورس انجام بشه
یاعلی

aria1o
جمعه 26 آذر 1389, 19:32 عصر
این راه برای من خیلی کاربردی و راحت تر بود


TreeView.Nodes(1).ExpandedImage = 2

TreeView.Nodes(1).ExpandedImage = 1