PDA

View Full Version : تغییر رنگ یک آیتم ListBox



mehran554
دوشنبه 15 مرداد 1386, 18:44 عصر
باسلام خدمت تمامی اساتید محترم این سایت :لبخندساده:

بنده اخیرا به جرگه برنامه نویسان vb.net پیوستم و خیلی خوشحالم که در جمع شماهام :خجالت:

یه سوال داشتم در مورد لیست باکس (امیدوارم تکراری نباشه :افسرده: )

من میخوام توی لیست باکس بعد از اینکه کاربر آیتم مورد نظرش رو انتخاب کرد و روی دکمه ای

کلیک کرد رنگ اون آیتم تغییر کنه (یعنی کاربر متوجه بشه که اون آیتم رو انتخاب کرده )

من هر چه گشتم توی کدها راجع به عوض کردن رنگ تک تک آیتم ها چیزی ندیدم ....:متفکر:

ممنون می شم اگر راهنمایی کنید :خجالت::قلب:

saeed_rezaei
سه شنبه 16 مرداد 1386, 01:51 صبح
سلام دوست من.
ورودت به میان جمع ماهایی که دوست داریم رو خوش آمد می گم.
خود لیست بوکس این امکان رو نداره که تک تک آیتمهاش رو یه رنگ خاص بزنی. ولی به صورت پیش فرض هنگامی که یه آیتم رو انتخاب می کنی رنگ پس زمینش رو آبی می کنه تا کاربر بدونه که کدوم آیتم انتخاب شده.
حالا فرض میکنیم که به هر دلیلی می خوای رنگ نوشته رو تغییر بدی، که واسه این کار باید از کلاس گرافیک استفاده کنید.
اما خوب نمونه کد زیر رو ببین.



PrivateSub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
Dim i AsInteger
i = ListBox1.SelectedIndex
Dim mytext AsString
mytext = ListBox1.Items(i)
ListBox1.CreateGraphics.DrawString(mytext, ListBox1.Font, Brushes.Red, 0, i * ListBox1.Font.Height)
EndSub


این نتیجه رو در پی داره.

البته این رو هم بگم که listbox متد paint رو نداره.
پس باید دقت کنید که کجاها از این کد استفاده کنید و گرنه رنگ نوشته پایدار نیست و با یه بار کوچیک بزرگ کردن فرم، رنگش پاک می شه.

mehran554
سه شنبه 16 مرداد 1386, 12:13 عصر
saeed_rezaei (http://barnamenevis.org/forum/member.php?u=30229) عزیز (http://barnamenevis.org/forum/member.php?u=30229)


ممنون از لطف و توجه شما .... :چشمک:

اینو که فرمودین لیست باکس بصورت پیش فرض رنگ پس زمینه رو آبی می کنه درست ... اما من منظورم چیز دیگه ای هست ....

ببینید ... دو تا لیست باکس داریم که از داخل لیست باکس 1 ادد می کنیم تو لیست باکس 2 ...

حالا من می خوام آیتم هایی که ادد میشن از داخل لیست باکس 1 رنگشون عوض بشه (بعد از انتخاب و ادد کردن ) تا کاربر در انتها متوجه انتخاب آیتم در موردهای قبلی شده باشه .....

برنامه شما رو تست کردم ولی تو این برنامه رنگ آیتمها همراه با تغییر آیتمها تغییر پیدا می کنه که این درست مثل همون پیش فرض برنامه هست (که تغییر رنگ پیش زمینه آیتم هاست )

باز هم ممنون از کمکتون .....:قلب:

saeed_rezaei
سه شنبه 16 مرداد 1386, 14:05 عصر
سلام مهران جان.
دوست من، چیزی که واستون زدم تنها یک مثال بود برای عنوان نحوه استفاده از توابع گرافیک برای رنگی نمودن آیتمها. حال به چه صورتی و به چه تعدادی و در چه زمانی می خواید عملیات تمایز رو انجام بدید ، به هر حال بستگی به سبک برنامه نویسی خودتون داره و اونچیزی که تعریف می کنید.
امیدوارم با بسط کد بالا، بتونید مشکلتون رو حل کنید.