עבור לתוכן

C# - איך קולטים את ה-index של הקובץ שבחרתי מתוך Listbox ?

Featured Replies

פורסם

יש לי תוכנית ובה LISTBOX, הוספתי לו גם contextMenuStrip עם תפריט, כשאני לוחץ קליק ימני יש לי אופציה של DELETE שקולטת את ה-string של הקובץ ומסירה אותו מה-LISTBOX ועוד אופציה שזה אני רוצה לקלוט אחרי הלחיצה את ה-INDEX של הקובץ שלחצתי עליו ב-LISTBOX כל מה שלא השתמשתי בו (selected item, selected index וכו') תמיד החזיר לי מינוס 1 ולא את ה-index, אשמח לעזרה איך לעשות את זה.

פורסם

כי רק כפתור שמאלי בוחר איברים ברשימה. אתה צריך "להסיק" על איזה איבר העכבר מצביע כרגע מהמיקום של העכבר במסך.

בכל מקרה, שאלו פה משהו דומה לא מזמן:

http://hwzone.co.il/community/index.php?topic=524650.0

וכאן יש בדיוק את מה שאתה צריך:

http://stackoverflow.com/questions/376910/how-can-i-add-a-context-menu-to-a-listboxitem

פורסם
  • מחבר

הדוגמא מ-stackoverflow לא ממש עוזרת לי כי שם הפונקציה היא:


private void listBox1_MouseDown( object sender, MouseEventArgs e )
{


}

ושלי היא:


private void contextMenuStripStatistics_Click(object sender, EventArgs e)
{

}

ואני לא יכול לרשום כמו בדוגמא

if ( e.Button == MouseButtons.Right )

ומהדוגמא השנייה יש לי את הקורדינטות של הלחיצה אבל מה הלאה ? מה אני עושה איתם ?

פורסם

קראת את כל הדוגמה?

הם משתמשים בזה כדי "לעקוף" את הפתיחה הרגילה של ה-context menu.

פורסם
  • מחבר

אני נתתי לחיצה על כל אחת מהאפשרויות שיש לי ב-menu עלמנת שתיווצר לי פונקציה של אותה הלחיצה, אתה אומר לבטל את זה וליצור פונקציה אחת של

listBox1_MouseDown ?

עריכה:

אוקיי אז הסתדרתי, הורדתי את ה-contextMenuStrip מהפרופרטי של ה-ListBox ורשמתי:


private void listBoxFiles_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
var item = listBoxFiles.IndexFromPoint(e.Location);


if (item >= 0)
{
listBoxFiles.SelectedIndex = item;
contextMenuStripListBox.Show(listBoxFiles, e.Location);
}
}
}

אז פה עכשיו יש לי את האינדקס של הקובץ ועוד פונקציה שנקראת contextMenuStripDelete_Click שאליה אני נכנס רק אם אני בוחר ב-menu את האופציה Delete.

עכשיו הבעיה שלי היא כזאת, חוץ מה-Listbox שאליה אני מכניס קבצים יש לי עוד

List<MyObject>

שאליה אני מכניס סטטיסטיקות של כל קובץ שיש לי ב- Listbox ואיך שאני מוחק קובץ מה-Listbox אני רוצה גם כמובן להסיר את האובייקט של הסטטיסטיקות שלו מה-List, אז איך אני מתוך הפונקציה של ה-Delete יכול להגיע לאינדקס של הקובץ ?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים