Newsgroup: it.comp.lang.visual-basic
Titolo: 1a voce ListBox su WebForm non intercettata

VS2003 , ho delle ListBox con verie voci , che funzionano,
quello che noto e' questo:
se faccio click sulla Prima voce (index=0) questa non viene intercettata
se clicco su una voce successiva e poi torno alla Prima (index=0)
allora viene intercettata e fa cio' che deve fare.
La proprieta' AutoPostBack della ListBox e' True
Mettendo un Breakpoint sull'evento ListBox1_SelectedIndexChanged
al click sulla prima voce non scatta l'evento
al momento ho aggiunto una voce vuota all'index 0 , cosi' dalla 1 alla 3
sono intercettate
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, 
ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        If ListBox1.SelectedIndex = 1 Then
            Response.Redirect(" .....")
        ElseIf ListBox1.SelectedIndex = 2 Then
            Response.Redirect(" ........")
        ElseIf ListBox1.SelectedIndex = 3 Then
            Response.Redirect(".....")
        End If
        ListBox1.SelectedIndex = 0
End Sub 

 sono intercettate
Giusto.
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca

> (Riflettici bene, prima di rispondere)
un comportamento come le ListBox in Windows,
ovvero che qualunque voce presente da 0 a n puo' essere
intercettata. :( 

 intercettata. :(
Sbagli ;)
Controlla e ti ricrederai...


Maurizio ha detto questo venerdì :

Innanzitutto occorre fare un po' di chiarezza in questo tuo modo random 
di esprimerti, altrimenti non ci si capisce una fava.
E, soprattutto, non individui l'inganno in cui stai cadendo, che 
sarebbe grande come una casa, se solo ti esprimessi con termini 
decenti.
Cominciamo dicendo che le listbox a cui fai riferimento in quest'ultimo 
post non sono 'di windows', ma di vb6.
Poi, non vengono 'intercettate' le voci, ma vengono 'scatenati' degli 
eventi.
Adesso considera che in vb6 l'evento che viene scatenato è il click. 
Che, giustamente, viene scatenato su qualunque voce tu faccia click.
Tu invece utilizzi l'evento SelectedIndexChanged, ossia, traduco, "è 
cambiato l'indice selezionato!!!'.
Se il listbox parte con, *già selezionato*, l'indice 0, perchè mai il 
sistema dovrebbe dirti che l'indice è cambiato, quando clicchi sulla 
voce 0 stessa?
Alberto
-- 
I have a dream that my four little children
will one day live in a nation where they
will not be judged by the color of their skin
but by the content of their character.

 Che, giustamente, viene scatenato su qualunque voce tu faccia click.
Ciao Albe V°,
mi spiace contraddirti, ma non è cosi...
L'evento Click viene scatenato SOLO SE l'item correntemente visualizzato 
viene sostituito con un altro.
Almeno sul mio VB6 Enterprise SP6.
Option Explicit
Dim LoadingItem As Boolean
Private Sub Combo1_Click()
    If LoadingItem Then Exit Sub
    MsgBox "Evento Click"
End Sub
Private Sub Form_Load()
    LoadingItem = True
    Combo1.AddItem "Voce 1"
    Combo1.AddItem "Voce 2"
    Combo1.AddItem "Voce 3"
    Combo1.Text = "Voce 1"
    LoadingItem = False
End Sub


     Combo1.Text = "Voce 1"
Combo?


 voce 0 stessa?
In effetti è proprio così.
(ed è appunto lo stesso comportamento della ComboBox)
Certo che, se comincio a leggere "ComboBox" al posto di "ListBox", al 
rientro (oggi) da 15 giorni di ferie, non oso pensare tra una settimana in 
che condizioni mentali mi troverò :)
Ciao!
