PDA

View Full Version : سوال: مشکل با Listview ---- عدم نمایش بموقع اطلاعات



Ship Storm
سه شنبه 28 خرداد 1392, 23:54 عصر
سلام بر اساتید
من یک مشکل حل نشدنی دارم با Listview
وقتی میخوام اطلاعاتی رو تو فرم Edit ویرایش کنم یکی از گزینه ها ویرایش عکس هست که میتونیم تصویر رو ویرایش کنیم و عکس جدیدی رو جایگزین کنیم
مشکل من اینجاست که وقتی رو داده هایی که بعد از ویرایش روی Listview ریخته میشن کلیک میکنم عکس جدید رو نشون نمیده و یکم اذیت میکنه به این صورت که باید روی سطر بالایی یا پایینی کلیک کنی و بعد روی سطری که ویرایش شده کلیک کنی تا عکس رو نمایش بده
نمیدونم منظورم رو متوجه شدین یا نه !!!
از listvie.update و refresh هم استفاده کردم اما بی فایده بوده برای حجل این مشکل
خواهش میکنم یک راه حل اساسی بدین واسه حل این مشکل
یک عکس هم میزارم از برنامه بهتر متوجه قضیه بشید :

105782

ببینید من الان یوزر شماره 8 رو ویرایش کردم و یک عکس جدید براش جایگزین کردم ولی وقتی بعد از زدن دکمه ویرایش میام روی سطر یوزر 8 تو listview کلیک میکنم عکسی به من نشون نمیده و باید حتما روی یوزر 6 یا 10 کلیک کنم و بعد بیام روی یوزر 8 کلیک کنم تو listview تا عکس جدید نمایش داده بشه
ممنون میشم کمک کنید این مشکل من حل بشه


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



Private Sub ListView1_ItemSelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedE ventArgs) Handles ListView1.ItemSelectionChanged
TextBox8.Text = e.Item.SubItems(1).Text
TextBox7.Text = e.Item.SubItems(2).Text
If e.Item.SubItems(3).Text = "Male" Then
RadioButton4.Checked = True
Else
RadioButton3.Checked = True
End If
ComboBox2.Text = e.Item.SubItems(4).Text
PictureBox2.ImageLocation = (Environment.CurrentDirectory & "\CustomerPictures\") + e.Item.SubItems(5).Text + ".jpg"
pics = (PictureBox2.ImageLocation)
TextBox6.Text = e.Item.SubItems(6).Text
TextBox5.Text = e.Item.SubItems(7).Text
Label12.Text = e.Item.SubItems(0).Text
End Sub

Ship Storm
چهارشنبه 29 خرداد 1392, 12:16 عصر
ممنون ولی این روش اصولی نیست و به مشکل برمیخوره
دوستان و اساتید عزیز راهنمایی بفرمایید

Ship Storm
چهارشنبه 29 خرداد 1392, 16:13 عصر
اخه نشون نمیده دقیقا چندبار باید روی سطر های بالا یا پایین کلیک کنی تا عکس مربوط به ردیف 8 رو وقتی روش کلیک کردی نشون بده
بعصی مواقع دوبار بعصی مواقع 10 بار و بعصی مواقع
باید برنامه رو ببندی مجدد اجرا کنی

Ship Storm
چهارشنبه 29 خرداد 1392, 19:42 عصر
:متفکر:

pics= (Environment.CurrentDirectory & "\CustomerPictures\") + e.Item.SubItems(5).Text + ".jpg"
PictureBox2.ImageLocation = pics

این کد رو جایگزین کن جوابش رو بعدن بگو

فرقی نکرد امتحان کردم

Ship Storm
چهارشنبه 29 خرداد 1392, 22:33 عصر
ممنون ازت ولی نشد که بشه و خوشحالمون کنه :لبخند:
......
برنامه نویس های عزیز راه حلی ندارین برای این مشکل ؟
یکم یاری بدید دوستان پس کجائیید ؟ :ناراحت:

ali.rk
چهارشنبه 29 خرداد 1392, 23:08 عصر
چرا آپلود نکردی ؟

Ship Storm
چهارشنبه 29 خرداد 1392, 23:11 عصر
کل پروژه رو آپلود کنم ؟ !!

ali.rk
چهارشنبه 29 خرداد 1392, 23:21 عصر
نه قسمت مشکل دار

Ship Storm
پنج شنبه 30 خرداد 1392, 13:44 عصر
جداکردن این قسمت خودش کلی زمان بره و چون به صفحات دیگه ارتباط داره و بانک اطلاعاتی رو دربرداره امکان جدا کردن این قسمت به آسونی نیست

yosefi1988
پنج شنبه 30 خرداد 1392, 18:33 عصر
سلام حامد جان
اینجوری سخته توضیح دادن و نشون دادن یک راه حل صحیح

یک روش سریع هست که شما بعد از ویرایش فرم رو Close کنی تا وقتی دوباره به این فرم برمیگردی اطلاعات نسبت به چیزی ویرایش کردی به روز شده بیاد بالا

روش دیگه ای هم هست که کمی زمانبر هست (من خودم جای تو بودم از این روش استفاده میکردم)
ایم که همه اطلاعات رو با Linq بخونی و بریزی داخل متغییر ها ودیگر احتیاجی به استفاده از listView نخواهی داشت که بروز کردن و... خعلی راحت تر خواهد بود
فکر نکنم با ویرایش اطلاعاتی که انجام میدی هم مشکلی داشته باشه

درسته listview خعلی امکانات در اختیار ما قرار میده ولی خیلی جاها هم باعث دردسر میشه

یعنی وقتی میخوای اطلاعات رو برای ویرایش بخونی با Linq بخون و بریز داخل Textها و image.url ها
برای ویرایش هم text , image.url رو بریز توی دیتابیست

امیدوارم تونسته باشم منظورم رو برسونم