2009-08-04 18 views
60

Tengo un TextBox en una aplicación de formularios C#. Rellené el TextBox con información sobre el evento Load del formulario. Luego llamo a lo siguiente:Desplácese hasta la parte inferior de C# TextBox

this.txtLogEntries.SelectionStart = txtLogEntries.Text.Length; 
this.txtLogEntries.ScrollToCaret(); 

Sin embargo, el TextBox no se desplaza hacia la parte inferior?

Esto solo se aplica al evento Load sin embargo. También actualizo este TextBox desde otras partes de la aplicación una vez que se está ejecutando, y tan pronto como uno de estos eventos actualiza el TextBox, se desplaza hacia la parte inferior.

Entonces, ¿cómo puedo hacer para que se desplace hacia abajo al rellenar el TextBox en el evento de carga de formulario? evento

+1

Comprobar [http://stackoverflow.com/questions/739656/ how-can-i-scroll-to-a-specified-line-in-a-winforms-textbox-using-c] (http://stackoverflow.com/questions/739656/how-can-i-scroll-to -a-specified-line-in-a-winforms-textbox-using-c) – Raghav

Respuesta

92

Trate de poner el código en el formulario que se muestra:

private void myForm_Shown(object sender, EventArgs e) 
{ 
    txtLogEntries.SelectionStart = txtLogEntries.Text.Length; 
    txtLogEntries.ScrollToCaret(); 
} 
16

Mientras que el Load evento (se produce antes se muestra el formulario) se procesa, no hay forma de mostrar, sin embargo, y por lo tanto no visuales estado ha sido establecido. Desplazar un control no visible es muy probable que no haga nada porque, oye, no hay nada para desplazarse, ya que una ventana de desplazamiento es solo una vista del control pero no parte de su estado.

Usted puede tener más éxito con el movimiento de la parte de desplazamiento en el caso Shown (se produce después de se muestra por primera vez la forma) de la forma

Cuestiones relacionadas