Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    62

    Evento scatenato da array di object

    Salve a tutti,

    io ho una serie variabile di combobox che ho inserito in un array come object.
    ora vorrei sapere se è possibile catturare l'evento di SelectedIndexChanged di una qualsiasi combobox,
    avendo però la necessità di estrapolare l'indice dell'array riferito alla combobox interessata dall'evento.

    c'è qualcuno che mi può aiutare?
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    62
    aggiungo che il linguaggio da me usato è il visual C#
    scusate

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    62
    nessun aiuto?

  4. #4
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    Non credo che si possa fare direttamente. Comunque esisterebbe un trucco... non so fino a che punto, però...

    Premetto che tutti i controlli hanno una proprietà "Tag", in cui puoi inserire qualsiasi stringa vuoi.

    Io farei così:
    1. crea il tuo array di combobox (sempre se serve...), avendo l'accortezza di inserire nel Tag di ognuna il suo indice convertito in stringa con ToString()
    2. Scrivi una procedura di evento SelectedIndexChanged generica, che si chiami, che ne so, MiaProc
    3. Quando crei le combobox, assegna loro un delegato alla procedura che hai scritto per l'evento (con ogg.SelectedIndexChanged += new EventHandler(this, MiaProc) ): in questo modo, quando si verifica l'evento in una qualsiasi delle combobox, verrà eseguita sempre la stessa procedura di evento
    4. Nella procedura di evento, il primo parametro rappresenta l'oggetto che lo ha ricevuto: a questo punto (essendo un Object) basta che lo converti in ComboBox con un cast, ne estrai il Tag, lo riconverti in numero... et voilà, hai ottenuto l'indice.


    E' più facile a farlo che a dirlo... a meno che non esista un modo più semplice.

    Svegliati, Neo. Matrix ti possiede...

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Il controllo interessato dall'evento viene passato come parametro (sender); attraverso il metodo IndexOf applicato all'Array dovrebbe essere possibile risalire all'indice dell'elemento che ha scatenato l'evento.

    Tutto a livello teorico... eventualmente, basta verificare se è vero.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    Effettivamente funziona... senza neanche usare il Tag.
    Comodissimo l'Array.IndexOf, non avevo mai trovato una funzione di ricerca automatica nei vettori... è proprio vero che non si finisce di imparare. DENGHIU!
    Svegliati, Neo. Matrix ti possiede...

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    62
    ciao newbie,

    sono un neofita con C# e le domande che vorrei farti sono sicuramente banali. :rollo:

    mi potresti dire come si fa a scrivere una procedura di evento SelectedIndexChanged generica (MiaProc) come hai detto te?

    quell'ogg è l'array di object che contiene i combobox? :master:
    grazie


  8. #8
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    Originariamente inviato da gemv60i
    ciao newbie,

    sono un neofita con C# e le domande che vorrei farti sono sicuramente banali. :rollo:

    mi potresti dire come si fa a scrivere una procedura di evento SelectedIndexChanged generica (MiaProc) come hai detto te?

    quell'ogg è l'array di object che contiene i combobox? :master:
    grazie

    Una procedura di evento SelectedIndexChanged generica è

    codice:
    void MiaProc(object sender, System.EventArgs e)
    {
        //corpo della procedura...	
    }
    ogg rappresenta la combobox mentre la crei (sicuramente con una new ComboBox(...) )appena prima di aggiungerla al vettore.

    Svegliati, Neo. Matrix ti possiede...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.