Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di nico95
    Registrato dal
    Dec 2008
    Messaggi
    33

    [VB.NET] Verificare presenza testo in una listbox

    ciao a tutti come da titolo vorrei verificare la presenza di un testo (TextBox1.Text) in un elemento della (ListBox2.Items) per gestire delle condizioi...
    Codice PHP:
    If ListBox2.Items TextBox1.Text Then              TextBox1.Refresh()          
    Else             
    Try                  
    My.Settings.Cronologia.Add(TextBox1.Text)                  ListBox2.Items.Add(TextBox1.Text)                  My.Settings.Save()              
    Catch 
    exx As Exception              
    End 
    Try          
    End If 
    Questo codice dovrebbe funzionare ma mi evidenzia
    Codice PHP:
    ListBox2.Items TextBox1.Text 
    dicendomi
    Risoluzione dell'overload non riuscita perché nessun '=' accessibile può essere chiamato con questi argomenti: 'Public Shared Operator =(a As String, b As String) As Boolean': Impossibile convertire il valore di tipo 'System.Windows.Forms.ListBox.ObjectCollection' in 'String'.
    Mentre se ascolto il suggerimento correggo cosi
    Codice PHP:
    Public Shared Operator =(ListBox2.Items TextBox1.Text)As Boolean 
    ma mi sottolinea Public e mi riporta l errore: "Prevista espressione"
    Vi ringrazio anticipatamente per l aiuto,
    Nico95

  2. #2
    Ciao,
    Items è una collection di valori nella listbox, quindi devi inserire l'indice dell'elemento

    codice:
    ListBox1.Items(0) = TextBox1.text 'primo elemento
    ListBox1.Items(1) = textBox1.Text 'secondo elemento
    ....
    Ovviamente dovresti utilizzare un ForEach o ciclo For per ogni Item.
    Il blog sullo sviluppo software, lezioni online gratuite su VC/C++, VB.NET, C#, PHP, Windows e Linux.

  3. #3
    Utente di HTML.it L'avatar di nico95
    Registrato dal
    Dec 2008
    Messaggi
    33
    Potresti fare un esempio di codice per favore... Sono un novellino del vb.net mi faresti un grande piacere (ovviamente x il ciclo for o foreach

  4. #4
    Ti scrivo il codice per iterare tutti gli items di una listbox, ma se devi riempire il campo di edit dovrai poi scegliere un solo valore.

    codice:
    ListBox1.Items.Add("Uno")
    ListBox1.Items.Add("Due")
    ListBox1.Items.Add("Tre")
    ListBox1.Items.Add("Quattro")
    ListBox1.Items.Add("Cinque")
    ListBox1.Items.Add("Sei")
    ListBox1.Items.Add("Sette")
    
    ' caso con For Each
    For Each myItem In ListBox1.Items
          If myItem = "Quattro" Then
             MsgBox(myItem)
             Exit For
          End If
    Next
    
    ' caso con For
    If ListBox1.Items.Count > 0 Then
       For i = 0 To ListBox1.Items.Count
          If ListBox1.Items(i) = "Cinque" Then
             MsgBox(ListBox1.Items(i))
             Exit For
          End If
       Next
    End If
    Il blog sullo sviluppo software, lezioni online gratuite su VC/C++, VB.NET, C#, PHP, Windows e Linux.

  5. #5
    Utente di HTML.it L'avatar di nico95
    Registrato dal
    Dec 2008
    Messaggi
    33
    Grazie in ogni caso il contenuto dell item (della listbox) viene generato al cambiare del testo della textbox...
    I dovrei verificare se l'elemento e gia presente in modo che non venga aggiunto una seconda volta... avrei a disposizione anche un documento my.setting... se uso quello per la verifica risolvo qualcosa???
    In ogni caso quello che devo fare è crerare una cronologia per un web browser... senza che alla pressione del tasto BACK FOWARD REFRESH la list box si aggiorni...

  6. #6
    Allora ti occorre una cosa del genere

    codice:
    If TextBox1.Text.Length > 0 Then
       Dim bTrovata As Boolean = False
       For Each myItem In ListBox1.Items
           If TextBox1.Text = myItem Then
                bTrovata = True
                Exit For
           End If
       Next
    
       If bTrovata = False Then
            ListBox1.Items.Add(TextBox1.Text)
       End If
    End If
    Il blog sullo sviluppo software, lezioni online gratuite su VC/C++, VB.NET, C#, PHP, Windows e Linux.

  7. #7
    Utente di HTML.it L'avatar di nico95
    Registrato dal
    Dec 2008
    Messaggi
    33
    Grazie mille ora funziona ma avrei un altro problemino... se io digito html.it
    la cronologia riporta h (poi) ht , htm , html , html. ecc fino a html.it io uso l evento tetxtchanged ce un modo per ovviare al problema???

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Moderazione

    VB.NET viene trattato nell'area apposita: VisualBasic e .NET Framework.

    Sposto.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Mi sembra che stiate ragionando ancora alla vecchia ed obsoleta maniera 'VB6'
    Anzi, ad essere sincero io non usavo quel metodo nemmeno in VB6, perchè preferivo di gran lunga usare l'API SendMessage() con gli appositi messaggi LB_FINDSTRING o LB_FINDSTRINGEXACT.

    Guarda il caso, questa caratteristica è ora inclusa nativamente in NET, per cui la ricerca di una stringa nel ListBox si fa usando il metodo FindString() o FindStringExact() , esempio

    codice:
        Dim searchString As String = txtSearch.Text
        Dim index As Integer = ListBox1.FindString(searchString)
        ' se la stringa è trovata restituisce il suo indice e la seleziona.
        If index <> -1 Then
            ListBox1.SetSelected(index, True)
        Else
            MessageBox.Show("Stringa non trovata.")
        End If
    Quando si inizia ad usare un controllo, consiglio sempre di guardarsi SEMPRE la lista dei relativi Metodi, Proprietà ed Eventi , se non altro per avere un'infarinatura generale che poi torna utile in seguito perchè dai relativi nomi è spesso facile capirne l'utilità.

    Intendo dire che se uno legge FindItem non deve nemmeno fare 2+2 per capire a cosa serve quel metodo, vi pare?


  10. #10
    Utente di HTML.it L'avatar di nico95
    Registrato dal
    Dec 2008
    Messaggi
    33
    grazie di tutto risolto :-)

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.