Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342

    [VB.NET]Evidenziare testo da codice

    Dopo aver creato la funzione cerca (in realtà devo ancora eliminare il case sensitive), il mio problema è evidenziare la parola trovata, mi spiego meglio....

    ho una TextBox che contiene:
    codice:
    rosso verde giallo blu
    vorrei selezionare solo la parola verde... purtroppo non sono riuscito a capire come arrivare a questo risultato

    other: e se la TextBox contiene più parole uguali?

    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


  2. #2
    Devi usare il metodo Select della TextBox:

    TextBox1.Select(X,Y)

    dove X è il primo carattere da evidenziare e Y la lunghezza della evidenziazione.

    X lo trovi con Text.IndexOf(Stringa), Y con Stringa.Lenght

    Bye

  3. #3
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342
    Ho provato in questo modo:
    codice:
     
    TextBox5.Select(Text.IndexOf(TextBox6.Text), TextBox6.Text.Length)
    Dove:
    TextBox6 = stringa;
    TextBox5 = "contenitore" della stringa da evidenziare.

    Ma non sembra funzionare: inserendo "a b c d e" sulla TextBox5 e "b" sulla TextBox6 ecco cosa mi da:


    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


  4. #4
    Innanzitutto, ovviamente, devi gestire gli errori con un Try... Catch... altrimenti se la stringa non contiene la sottostringa il programma si blocca con errore.

    Poi: ...(Text.IndexOf(TextBox6.Text)...

    Come hai definito Text??? Avresti dovuto scrivere TextBox5.Text.IndexOf....

  5. #5
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342
    Originariamente inviato da eziogsv
    Innanzitutto, ovviamente, devi gestire gli errori con un Try... Catch... altrimenti se la stringa non contiene la sottostringa il programma si blocca con errore.

    Poi: ...(Text.IndexOf(TextBox6.Text)...

    Come hai definito Text??? Avresti dovuto scrivere TextBox5.Text.IndexOf....
    Grazie per la risposta.
    Si, il Try non l'ho messo perché prima voglio verificare che funzioni con la stringa che esiste...

    Ho definito Text così:

    codice:
    Dim Text As String = TextBox6.Text
    Dunque avevo sbagliato inserendo la TextBox6 al posto della TextBox5, cambiano il tutto il vb non mi genera nessuna eccezione ma, il testo non viene evidenziato

    Metto il codice "completo"...

    codice:
     
       Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
    
            If CheckBox1.Checked = True Then
                Dim Text As String = TextBox5.Text
                TextBox5.Select(Text.IndexOf(TextBox6.Text), TextBox6.Text.Length)
            Else
            End If
    
        End Sub

    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


  6. #6
    Il fatto è che premendo il pulsante "togli" il fuoco alla TextBox5.

    Prova ad aggiungere del codice che la forzi a riprendersi il Focus:
    codice:
            TextBox5.Select()  
            Dim Text As String = TextBox5.Text
            TextBox5.Select(Text.IndexOf(TextBox6.Text), _
                           TextBox6.Text.Length)

  7. #7
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342
    Originariamente inviato da eziogsv
    Il fatto è che premendo il pulsante "togli" il fuoco alla TextBox5.

    Prova ad aggiungere del codice che la forzi a riprendersi il Focus:
    codice:
            TextBox5.Select()  
            Dim Text As String = TextBox5.Text
            TextBox5.Select(Text.IndexOf(TextBox6.Text), _
                           TextBox6.Text.Length)
    Esatto perché se lo metto nell'evento TextBox5_Enter funge senza il Select

    Ora però non saprei come fare se vi si presenta una parola ripetuta, tipo:
    TextBox5.Text = "a b c d b"
    TextBox6.Text = "b"

    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


  8. #8
    Beh, qui non si insegnano le basi del VB... quello che ti domandi è veramente semplice: vai di Substring... e non dico di più, sennò dove è il divertimento??

  9. #9
    .. vai di Substring...
    Oppure risolvi la cosa gestendo adeguatamente lo StartIndex di IndexOf...

  10. #10
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342
    Io non sono riuscito a capire che fare nel senso: se trovo un'altra parola uguale che faccio? magari non so cambio il nome del button e con un If del tipo:
    codice:
     
    If Button1.Text = "Other" Then
                'selezione l'altro item
            End If
    in modo che al prossimo click se il bottone ha cambiato nome mi seleziona l'altra parola...
    E' giusto fare in questo modo oppure non so, prima di capire che metodo utilizzare (se Substring o altro) devo capire come gestire la cosa

    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


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.