2009-08-01 12 views
5

quiero mostrar los resultados de este código en mi cuadro de texto:C# string Poner en Cuadro de texto

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

Tengo un cuadro de texto, txtOrgtext, en la que el usuario introduce texto. Quiero poner algo de texto en txtout ahora. He configurado txtout en Solo lectura y MultiLine.

Cuando trato de ejecutar mi programa, me sale el siguiente error:

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 

me trataron txtout1.ToString(), pero nada cambia.

También probé txtout.Text = txtout1 y obtiene este error:

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

me dio un error porque solía roscar, sin roscar que trabaja muy bien.

+1

indique claramente cuando edite su publicación ... –

+0

Esto debería ayudarle. http://msdn.microsoft.com/en-us/library/ms171728(VS.80).aspx – Travis

Respuesta

12

Lo que hay que hacer es:

txtout.Text = txtout1; 

Esto se debe a txtout1 es sólo una cadena de caracteres, mientras que txtout es un cuadro de texto completo, con todo el color y el dibujo y cosas por el estilo.

Veo que estaba en la línea correcta con su primera línea de código - txtOrgText.Text - el .Text se usa en ambos sentidos: para leer y escribir. (O "mirar" y "cambiar" es otra forma de expresarlo).

Hace esto con muchos otros controles: un ComboBox, un Formulario (para establecer el título), un DomainUpDown (lo que tiene el flechas a la derecha) por nombrar algunos.

El motivo por el que "ToString()" no funciona es que ToString() está convirtiendo su cadena de texto en una cadena de texto. No lo convierte en un TextBox para ti.

+0

@ person-b obtengo un error Operación de cruce de hilos no válida: control 'txtout' accedido desde un hilo que no sea el el hilo fue creado en. i removd todo tostring pero ... – zimzim

+0

¿Está utilizando un componente BackgroundWorker o la clase Thread? Intenta hacer Ctrl + F (buscar) para ellos. Si no, puede publicar la mayor cantidad de código posible en http://pastebin.com, por favor. Gracias :) –

+0

Ah, y, dicho sea de paso, perdón por la respuesta lenta - Voy a comprobar un poco más a menudo ahora;) –

4

txtOut.Text = txtout1;

2

En primer lugar txtout = txtout1; no servirá txtout es un cuadro de texto y txtout1 es una cadena .you de utilizar

txtout.Text = txtout1

es decir .Texto propiedad del cuadro de texto dice Obtiene o establece el texto actual en System.Windows.Forms.TextBox y su tipo es cadena como su txtout1 ya es una cadena que no hay necesidad para convertirlo de nuevo utilizando .ToString()

Cuestiones relacionadas