[VB.NET] Selezionare testo in Textbox

lunedì 26 marzo 2012 - 14.04
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010

feddycap Profilo | Newbie

Ho un problema : devo selezionare del testo in una textbox a partire da una parola predefinita, come faccio?
Ad esempio se io devo selezionare tutto quello che c'è dalla parola ciao in poi (e so che di sicuro c'è una parola ciao nella textbox) come faccio?

Gho5t Profilo | Junior Member

Ciao,
ecco come potresti fare (non ho provato il codice, ma teoricamente dovrebbe funzionare), questo codice non prende la parola da ricercare all'interno della selezione:
string Ricerca = "ParolaDaRicercare" int indice = txtSeleziona.Text.IndexOf(Ricerca) txtSeleziona.SelectionStart = indice + Ricerca.Length txtSeleziona.SelectionLength = txtSeleziona.Text.Length - txtSeleziona.SelectionStart

Questa è una guida che ti spiega cosa ho fatto:
http://msdn.microsoft.com/en-us/library/hk09zy8f.aspx
Se un uomo non è disposto a correre qualche rischio per le sue idee, o le sue idee non valgono nulla o non vale nulla lui

feddycap Profilo | Newbie

Io lavoro in VB.NET non in C# comunque l'ho tradotto così:
Dim Ricerca As String = "Ciao"
Dim indice As Integer = FILETOT.Text.IndexOf(Ricerca) TextBox1.SelectionStart = indice + Ricerca.Length TextBox1.SelectionLength = TextBox1.Text.Length - TextBox1.SelectionStart TextBox2.Text = FILETOT.SelectedText
ma il testo della textbox1 è :


Io sono Federico
Ciao
E basta


e dopo l'operazione la textbox2 è uguale alla textbox, mentre dovrebbe essere


E basta

Non hai un'altra soluzione?

feddycap Profilo | Newbie

Ho trovato una soluzione che dovrebbe funzionare:
Dim Ricerca As String = "BODY" Dim x As Integer = InStr(Ricerca, FILETOT.Text) + Ricerca.Length FILETOT.Select(x, FILETOT.Text.Length - x) TextBox1.Text = FILETOT.SelectedText
Questa volta senza andare per esempi specifico: FILETOT.text è il testo di una pagina HTML:
<HTML> <HEAD> <TITLE> Titolo Pagina </TITLE> </HEAD> <BODY BGCOLOR = #FF0000> <img src = "1173191510.png" width = "7" height = "77" > </BODY> </HTML>
Ho bisogno di selezionare quello che c'è dopo il TAG <BODY BGCOLOR = #FF0000> considerando che ha una lunghezza variabile, e che il colore può cambiare.
Ma il concetto è lo stesso: selezionare da un pezzo di testo in giù.

Vinsent Profilo | Senior Member

Prova così:
dichiara una boolean
scrivi un ciclo per leggere riga per riga il testo
Il ciclo:
inizio ciclo
se la riga inizia con "<body" imposta la boolean a true
se la riga finisce con "/body>" imposta la boolean a false ed esci dal ciclo
se la boolean è true aggiungi la riga a quello che vuoi....
fine ciclo

....come concetto dovrebbe andare...se ti serve un' esempio pratico chiedi pure.
ciao

InsettoScoppiettato Profilo | Junior Member

Ah ma allora dillo subito.
Ecco il codice ( C# per semplificare me e complicare le cose a te):

WebBrowser wb= new WebBrowser(); wb.Navigate("l'indirizzo del tuo file, stringa o Url che sia"); HtmlDocument doc = wb.Document; HtmlElement testoInteressante; foreach(HtmlElemnt x in doc.All) { if (x.TagName.ToString().ToLowerCase() =="body") { testoInteresante = x; break; } } string inFormatoTesto = testoInteressante.ToString();

non l'ho provato ma dovrebbe funzionare.
Ricordati di inseire l'using per System.Windows.Form come namespace raggiungibile.

ciao

Alessandro Parma
Programmazione multipla scoposta con prognosi ancora da definirsi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5