Oppure

Loading
07/11/09 21:57
LittleHacker
Salve a tutti sto facendo un'editor molto strano( :rofl: ) e vorrei che quando l'utente scir una parola, ad esempio, "Ciao" il programma mi colori quel "Ciao" in un colore però quando, ad esempio, scirov "Ciao come va?" lui mi scriva solo "Ciao" con il colore, ad esempio, blu e invece tutti gli altri ancora con il nero..come faccio?:hail:
P.S: Ho utilizzato un codice:
 For i As Integer = 0 To 10
                Start = (txtcode.Text.Length + 1) * i
                txtcode.Select(Start, txtcode.Text.Length)
                txtcode.SelectionColor = Color.FromArgb(Color.Green.ToArgb + (i * 5000))
            Next

e funziona ma se ad esempio scrivo "Ciao come va?" me lo scrive tutto in blu e non ciao in blu e gli altri ancora in nero:d
Grazie per l'aiuto
:k:
aaa
08/11/09 12:34
Il Totem
Non so proprio come faccia a funzionare, quel codice. Se i è 0, Start è 0 e la selezione è lunga quanto il testo, ossia ti seleziona tutto cambiandone il colore. Se i è maggiore o uguale a uno, certamente il codice darà errore di overflow, in quando Start è sempre maggiore o uguale della lunghezza del testo, e l'indice txtcode.Text.Length + 1 non può mai esistere (gli indici validi vanno da 0 a txtcode.Text.Length - 1).
Non capisco, poi, perchè usare quel codice assurdo per ottenere il colore blu, quando basta Color.Blue (tanto il colore non ti cambia perchè dopo i=0 il codice va in overflow).

Per trovare una parola, basta usare la funzione Find, ad esempio:
Sub Highlight(ByVal Start As Int32)
  Dim Index As Int32 = txtcode.Find("Ciao", Start, RichTextBoxFinds.WholeWord)
  'Find dovrebbe evidenziare automaticamente la parola trovata
  txtcode.SelectedColor = Color.Blue
  If Index + "Ciao".Length < txtcode.Text.Length - 1 Then
    Highlight(Index + "Ciao".Length)
  End If
End Sub
Ultima modifica effettuata da Il Totem 08/11/09 12:35
aaa
08/11/09 12:47
LittleHacker
Postato originariamente da Il Totem:

Non so proprio come faccia a funzionare, quel codice. Se i è 0, Start è 0 e la selezione è lunga quanto il testo, ossia ti seleziona tutto cambiandone il colore. Se i è maggiore o uguale a uno, certamente il codice darà errore di overflow, in quando Start è sempre maggiore o uguale della lunghezza del testo, e l'indice txtcode.Text.Length + 1 non può mai esistere (gli indici validi vanno da 0 a txtcode.Text.Length - 1).
Non capisco, poi, perchè usare quel codice assurdo per ottenere il colore blu, quando basta Color.Blue (tanto il colore non ti cambia perchè dopo i=0 il codice va in overflow).

Per trovare una parola, basta usare la funzione Find, ad esempio:
Sub Highlight(ByVal Start As Int32)
  Dim Index As Int32 = txtcode.Find("Ciao", Start, RichTextBoxFinds.WholeWord)
  'Find dovrebbe evidenziare automaticamente la parola trovata
  txtcode.SelectedColor = Color.Blue
  If Index + "Ciao".Length < txtcode.Text.Length - 1 Then
    Highlight(Index + "Ciao".Length)
  End If
End Sub

ok...ho visto sul tuo sito una guida sulla Syntax Highlight, mi potresti spiegare come si utilizza e poi come posso modificarla a mio paicere? :hail:
Grazie:k:
aaa