2009-08-01 14 views
5

voglio mostrare i risultati di questo codice nel mio TextBox:C# Mettete stringa in TextBox

 string txtout1 = txtOrgText.Text.Replace(parm, txtTo.Text).ToString(); 
     txtout = txtout1; 

ho una casella di testo, txtOrgtext, in cui l'utente immette del testo. Voglio mettere del testo in txtout ora. Ho impostato txtout su ReadOnly e MultiLine.

Quando ho provare a eseguire il mio programma, ottengo il seguente errore:

Error 1 Cannot implicitly convert type 'string' to 'System.Windows.Forms.TextBox' C:\Users\xxx\AppData\Local\Temporary Projects\WindowsFormsApplication1\Form1.cs 45 25 WindowsFormsApplication1 

ho provato txtout1.ToString(), ma non cambia nulla.

Ho anche provato txtout.Text = txtout1 e ottenere questo errore:

Cross-thread operation not valid: 
Control 'txtout' accessed from a thread other than the thread it was created on. 

ho ottenuto un errore perché ho usato Threading, senza Threading funziona benissimo.

+1

si prega di indicare chiaramente quando si modifica il tuo post ... –

+0

Questo dovrebbe aiutarti. http://msdn.microsoft.com/en-us/library/ms171728(VS.80).aspx – Travis

risposta

12

Quello che dovete fare è:

txtout.Text = txtout1; 

Questo perché txtout1 è solo una stringa di caratteri, mentre txtout è un TextBox completo, con tutto il disegno e la colorazione e cose del genere.

Vedo che eri sulla linea giusta con la prima riga di codice - txtOrgText.Text - lo .Text è utilizzato in entrambi i modi - per la lettura e la scrittura. (O "guardare" e "cambiare" è un altro modo di metterlo.)

Lo fai con molti altri controlli: un ComboBox, un Form (per impostare la didascalia), un DomainUpDown (la cosa con il frecce a destra) per citarne alcuni.

La ragione per cui "ToString()" non funziona è che ToString() sta trasformando la stringa di testo in una stringa di testo! Non lo trasforma in un TextBox per te.

+0

@ person-b ottengo errore Operazione cross-thread non valida: controllo 'txtout' accessibile da un thread diverso da thread è stato creato su. rimuovo tutti i tostring ma ... – zimzim

+0

Stai usando un componente BackgroundWorker o la classe Thread? Prova a fare un Ctrl + F (trova) per loro. In caso contrario, puoi pubblicare più codice possibile su http://pastebin.com per favore. Grazie :) –

+0

Oh, e, a proposito, mi dispiace per la risposta lenta - controllerò un po 'più spesso ora;) –

4

txtOut.Text = txtout1;

2

Prima di tutto txtout = txtout1; non servirà come txtout è una casella di testo e txtout1 è una stringa .È dovrebbe usare

txtout.Text = txtout1

cioè .Text proprietà di testo dice Ottiene o Imposta il testo attuale in System.Windows.Forms.TextBox e il suo tipo è stringa come vostra txtout1 è già una stringa non c'è bisogno per convertirlo nuovamente utilizzando .ToString()