Como hacer esto en c#¿

Iniciado por andrecid, 1 Julio 2015, 12:52 PM

0 Miembros y 1 Visitante están viendo este tema.

andrecid

Hola tengo una duda pero no se como hacerlo.

Bueno tenemos un TextBox y un richTextBox entonces lo que quiero es que en el texbox aparezca la primera linea del richTexbox ojo solo la primera linea

TextBox en blanco  y richTextBox  con 19
                                                     22
                                                     18

cuando le doy click en un botón el 19 se pone en el textbox , cuando le doy otra vez el 19 se borra y se pone el 22.

Es por curiosidad no se hacerlo y me gustaría que alguien me ayudase a hacerlo.

Gracias

Eleкtro

#1
Trata de publicar tu código la próxima vez para poder corregirte los errores que hayas tenido, piensa que aprender de tus errores te serviría de más ayuda.




Una manera de hacerlo sería suscribirte al evento RichTextBox.TextChanged para actualizar el TextBox especificado cuando este evento se dispare, reflejando así las modificaciones realizadas en la linea 0 del RichTextBox, recurriendo a la propiedad RichTextBox.Lines, la cual es una colección de strings que contiene las lineas de texto del RichTextBox.

Ejemplo en Vb.Net:
Código (vbnet) [Seleccionar]
Private Sub RichTextBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs) _
Handles RichTextBox1.TextChanged

   Me.TextBox1.Text = DirectCast(sender, RichTextBox).Lines.FirstOrDefault

End Sub


C#:
Código (csharp) [Seleccionar]
private void RichTextBox1_TextChanged(object sender, EventArgs e)
{
   this.TextBox1.Text = ((RichTextBox)sender).Lines.FirstOrDefault;
}


Si prefieres utilizar un botón para actualizar arbitrariamente el texto del TextBox, entonces solo tienes que hacer pequeñisimos cambios en el código que te acabo de mostrar para adaptarlo a ese tipo de comportamiento que mencionas, vamos, con esto quiero decir que creo que serás capaz de hacerlo tu solo sin ayuda xD :P.

Saludos








DarK_FirefoX

Creo que con lo que dice Eleкtro ya te serviría para lo que quieres hacer, pero ajustándolo más a tu duda te propongo esto:

Esto en el evento OnClick del botón.

Código (csharp) [Seleccionar]
private void theButton_Click(object sender, EventArgs e)
        {
            //Validamos que el richTextBox tenga al menos una linea
            if(richTextBox.Lines.Length > 0)
            {
                textBox.Text = richTextBox.Lines[0]; //Copiamos la primera linea al textBox
                //Aquí vamos a hacer una selección, indicándole que empiece en la posición 0 y termine en la posición siguiente a la longitud de la primera (0) linea
                richTextBox.SelectionStart = 0;
                richTextBox.SelectionLength = richTextBox.Lines[0].Length + 1;

                //Una vez seleccionado ese texto, le asignamos un cadena vacía
                richTextBox.SelectedText = string.Empty;
            }         
        }


Espero esto sea lo que quieres y te ayude.

Salu2s