בעיה מעצבנת ב-c#

asafeven

New member
בעיה מעצבנת ב-c#

יש לי listview שאני מבצע עליו מספר פעולות. אחת הפעולות היא מחיקה לאחר בחירה של שורה ב-list. כאשר אני מוחק את הפריט האחרון ב-list ה-listview מנסה כביכול להמשיך ולסמן את ה-item הבא ב-list ומכיוון שאין לו שם יותר פריטים הוא זורק לי הודעת שגיאה. ניסיתי כל מיני אופציות אף אחת מהן לא עובדת. זה מה שניסיתי:
listView1.SelectedItems[0].Focused = false; listView1.SelectedItems[0].Selected= false; listView1.SelectedItems.Clear(); למישהו יש פיתרון אולי ?? תודה​
 

gilad g

New member
לא הבנתי..

על איזה מצב מדובר בדיוק? למה שהוא יסמן את ה-item הבא ב-list?
 

asafeven

New member
ב-listview אני בוחר item.

ה-list כמובן מסמן אותו בכחול. אני לוחץ כפתור ימני, נפתח תפריט שכתבתי ואני בוחר למחוק את הפריט הזה. הכל נעשה כמו שצריך הפריט נמחק, אבל מה שקורה זה שה-list משאיר את הסימון של ה-item. ( את זה אני מבין מתוך העניין שבדקתי שיש כמה items ב-List. אחרי שהוא מוחק לא נזרקת לי שום הודעת שגיאה אבל השורה של ה-item שמחקתי נשארת מסומנת). מה שקורה שאין לו יותר items ב-list הוא פשוט זורק לי הודעת שגיאה.
 

gilad g

New member
לא יודע מה איתך..

אבל לי, זה:
foreach(ListViewItem item in listView1.SelectedItems) { item.Remove(); }​
עובד יופי
 

nice guy mr

New member
קוד בבקשה

אולי תציג את הקוד אותו אתה מבצע ומקבל הודעת שגיאה. בנוסף, כדאי שתצרף את ה Exception שאתה מקבל כולל ה Stack Trace שלו. תודה. יש 10 סוגי אנשים אלו שמבינים בינארית ואלו שלא.
 

asafeven

New member
עוד לא הצלחתי לפתור את הבעיה הזאת.

הנה הקוד. וההודעת שגיאה מצורפת
selected1 = listView1.SelectedItems[0].Index; selected1-=1; listView1.SelectedItems[0].Remove(); txtItem.Focus(); Itlist.RemoveAt(selected1); LoadItems(); CalculateInvoice();​
 
למעלה