views:

2040

answers:

5

I have a TextBox on a C# Forms Application. I populate the TextBox with information on the Load event of the form. I then call the following:

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

However the TextBox does not scroll to the bottom ?

This only applies to the Load event though. I also update this TextBox from other parts of the application once it's running, and as soon as one of these events update's the TextBox, it is scrolled to the bottom.

So, how can I get it to scroll to the bottom when pre populating the TextBox in the Form Load event ?

Thanks!

+11  A: 

Try putting the code in the Form's Shown event:

private void myForm_Shown(object sender, EventArgs e)
{
  txtLogEntries.SelectionStart = txtLogEntries.Text.Length;
  txtLogEntries.ScrollToCaret();
}
Bernhof
I so love SO! :)
Mr. Smith
A: 

Try moving the code to the Form.Shown event.

C-Pound Guru
+5  A: 

While the Load event (occurs before the Form is shown) is processed, there is no form to display yet, and thus no visual state has been established. Scrolling a non-visible control therefore very likely doesn't do anything because—hey, there is nothing to scroll as a scrolling viewport is just a view on the control but not part of its state.

You may have more success with moving the scrolling part into the Shown event (occurs after the form is first shown) of the form

Joey
A: 

these are for windows forms , how can we do it in web form ???

rüya tabiri