PDA

View Full Version : خطا در رویدادDrawItem لیست باکس در سی شارپ



arastoahmadi
چهارشنبه 04 تیر 1399, 08:36 صبح
با سلام به همه اساتید گرامی

دوستان من تو لیست باکسم با روش زیر رکوردهای یه ستون از جدولمو از طریق datatable به لیست باکس اضافه کردم
151873
151874

حالا میخام در رویداد DrawItem لیستمو تغییر بدم ، من در رویداد DrawItem کدهای زیر رو نوشتم و متاسفانه موقع اجرا با مشکل مواجه میشه ممنون میشم راهنمایی کنید

151875

151876

ShayanFiroozi
چهارشنبه 04 تیر 1399, 10:24 صبح
سلام ،

از پیام مشخصه نحوه Catsing شما صحیح نیست.

این رو تست کنین :


ListBox.ObjectCollection item = (ListBox.ObjectCollection)listBox1.Items[e.Index];

arastoahmadi
چهارشنبه 04 تیر 1399, 14:22 عصر
درود برشما جناب فیروزی
ممنون از پاسختون ولی متاسفانه همون پیغام خطا رو میاره ، یه جایی تو اون پیغام خطاعه نوشته Handled نشده. ولی من بازم راه حلی پیدا نکردم ممنون میشم اگه راه حل دیگه ای دارید مطرح بفرمایید

ShayanFiroozi
چهارشنبه 04 تیر 1399, 14:32 عصر
Handled نشده چون شما بلوک try/catch رو تعریف نکردین. که البته تعریفش در اینجا چندان تفاوتی در پروژه شما نداره ، چون به هر حال خطا پابرجاست.

اگر امکانش هست نمونه کد بفرستین تست کنیم.

arastoahmadi
چهارشنبه 04 تیر 1399, 14:56 عصر
بفرمایید فقط جهت اطلاع ، دیتابیس بهش لینک نیست

http://s13.picofile.com/file/8400986776/WindowsFormsApplication21.rar.html

ShayanFiroozi
چهارشنبه 04 تیر 1399, 19:46 عصر
مجددا سلام ،

نمیدونم دلیل اینهمه پیچیدگی چیه ولی کد شما اینجوری کار کرد ، ظاهرا وقتی شما ListBox رو Bind میکنی با دیتابیس ، Item هاش کلاس Base خودشونو از دست میدن !! و باید اینجوری Cast بشن.


System.Data.DataRowView item = (System.Data.DataRowView)listBox1.Items[e.Index];


var text = item[0].ToString();


ضمنا توجه کنین که Casting با Converting خیلی فرق داره.

arastoahmadi
پنج شنبه 05 تیر 1399, 21:02 عصر
سپاس بی کران ازشما، دوست خوبم فرمودید که پیچیدگی تو برنامه هستش ممنون میشم بفرمایید کدوم قسمت پیچیدگی داره و از چه روشی باید استفاده کرد بازم سپاس

ShayanFiroozi
جمعه 06 تیر 1399, 00:50 صبح
منظور بنده تلاش شما برای ReDraw کردن آیتم های لیست باکس بود.:چشمک:

arastoahmadi
جمعه 06 تیر 1399, 11:40 صبح
درود بر شما

حقیقتش میخواستم به لحاظ گرافیک یه مقدار جذاب تر به نظر بیاد لیستم