View Full Version : [C#] Problema associazione evento a items
Dr Nick Riviera
13-07-2007, 22:22
Come da titolo, non riesco ad associare un evento agli items in una listbox.. Gli items vengono aggiunti a runtime e io vorrei che facendo doppio click su ognuno di essi si aprisse un'altra form che contenga ad esempio una casella di testo (ma quet'ultimo non è importante).
Sono 2 giorni che provo ma non ho trovato nemmeno niente in rete, addirittura sto pensando che non si possa nemmeno fare, ma mi pare strano..
Qualcuno sa darmi delucidazioni in merito? Grazie 1000.. :)
Dr Nick Riviera
15-07-2007, 21:06
MA perchè a me non risponde mai nessuno... :( :( :cry:
RaouL_BennetH
16-07-2007, 13:36
Sicuramente ci saranno modi migliori per farlo, io però farei così:
private void ListItemDoubleClick()
{
int index = tuo_ListBox.SelectedIndex;
switch(index)
{
case 0:
tuoNuovoForm form = new tuoNuovoForm();
form.Show();
break;
case 1:
tuoAltroForm altroForm = new tuoAltroForm();
altroForm.Show();
break;
//e questo per quanti items hai nella listbox ricordandoti che
// partono da zero.
default:
MessageBox.Show("Non hai selezionato nessun item");
break;
}
}
//poi, dal windows designer seleziona il listbox e vai negli eventi e fai
//doppio click sull'evento DoubleClick; ti si apre la schermata del codice
//dove trovi:
private void listBox1_DoubleClick(object sender, EventArgs e)
{
// e qui ci piazziamo:
ListBoxItemDoubleClick();
}
Dr Nick Riviera
16-07-2007, 14:00
Grazie, lo provo subito e vedo se funziona.. l'unico problema è che io in questo modo dovrei creare tanti case quanti sono gli item, ma io gli item non lo so quanti sono perchè possono essere anche infiniti dato che vengono aggiunti a runtime.. ci vorrebbe quindi una sotra di ciclo for o meglio un array indefinito.. Cmq al momento attuo la tua soluzione per smuovere un po' le acque.. :)
Dr Nick Riviera
16-07-2007, 14:26
Confermo che funziona benissimo ;) Grazie, per me è già un passo avanti, adesso cercherò di capire se sia possibile fare una cosa che funzioni con tutti gli items senza conoscerne il numero..
Hell-VoyAgeR
16-07-2007, 16:07
c'e' sempre tuo_listbox.SelectedItem che ti puo' venire incontro per sapere COSA c'e' nell'item selezionato :)
Dr Nick Riviera
17-07-2007, 11:55
c'e' sempre tuo_listbox.SelectedItem che ti puo' venire incontro per sapere COSA c'e' nell'item selezionato :)
Sì, anche questo mi è molto utile in quanto dovrei far apparire una seconda parte di testo all'item aggiunto inizialmente..
Al momento riesco a farlo però mi aggiunge nuovamente in fondo alla lista lo stesso item selezionato con a fianco la seconda parte di testo aggiunta, mentre io vorrei scriverlo a fianco dell'item selezionato stesso..
Dr Nick Riviera
17-07-2007, 15:44
SOno riuscito per metà...
In pratica scrivendo:
mylistbox.SelectedItem = mylistbox.Items.Add(mylistbox.SelectedItem + " - " + mystring);
..mi aggiunge un nuovo item mentre io vorrei che fosse sostituito a quello selezionato o che fosse aggiunta solo la seconda parte a quello selezionato (" - " + mystring)
Ho provato a lavorare sulla proprità Text e su Replace ma non ho ottenuto niente di funzionate... avete dei suggerimenti? :confused: :mc:
lista.SelectedItem.Text = lista.SelectedItem.Text + " - " + mystring;
Dr Nick Riviera
17-07-2007, 18:23
lista.SelectedItem.Text = lista.SelectedItem.Text + " - " + mystring;
Eh.. avevo già provato ma le uniche possibilità che ho di inserimento dopo mylistbox.SelectedItem sono: Equals, GetHashCode, GetType, ToString.
Ups avevo confuso ListBox con DropDownList :stordita:
comunque:
void listBox1_DoubleClick(object sender, System.EventArgs e)
{
this.mylistbox.Items[this.mylistbox.SelectedIndex] = this.mylistbox.SelectedItem.ToString() + " - " + mystring;
}
'iao
Dr Nick Riviera
18-07-2007, 12:57
Grazie, ero riuscito ieri a risolvere con 3 righe di codice, mentre vedo che te lo hai fatto con un solo passaggio.. provo anche questo allora, grazie 1000.. ;)
Dr Nick Riviera
18-07-2007, 13:01
Ottimo, funziona perfettamente il tuo... credo che lo sostituirò al mio.. :fagiano: 1 riga is megl che 3.. :sofico:
Thx a lot..
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.