Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: andrecid en 1 Julio 2015, 12:52 pm



Título: Como hacer esto en c#¿
Publicado por: andrecid en 1 Julio 2015, 12:52 pm
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


Título: Re: Como hacer esto en c#¿
Publicado por: Eleкtro en 1 Julio 2015, 14:39 pm
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
  1. Private Sub RichTextBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs) _
  2. Handles RichTextBox1.TextChanged
  3.  
  4.    Me.TextBox1.Text = DirectCast(sender, RichTextBox).Lines.FirstOrDefault
  5.  
  6. End Sub

C#:
Código
  1. private void RichTextBox1_TextChanged(object sender, EventArgs e)
  2. {
  3.    this.TextBox1.Text = ((RichTextBox)sender).Lines.FirstOrDefault;
  4. }

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


Título: Re: Como hacer esto en c#¿
Publicado por: DarK_FirefoX en 1 Julio 2015, 19:18 pm
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
  1. private void theButton_Click(object sender, EventArgs e)
  2.        {
  3.            //Validamos que el richTextBox tenga al menos una linea
  4.            if(richTextBox.Lines.Length > 0)
  5.            {
  6.                textBox.Text = richTextBox.Lines[0]; //Copiamos la primera linea al textBox
  7.                //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
  8.                richTextBox.SelectionStart = 0;
  9.                richTextBox.SelectionLength = richTextBox.Lines[0].Length + 1;
  10.  
  11.                //Una vez seleccionado ese texto, le asignamos un cadena vacía
  12.                richTextBox.SelectedText = string.Empty;
  13.            }          
  14.        }

Espero esto sea lo que quieres y te ayude.

Salu2s