title: Inconsistent Results with RichTextBox ScrollToCaret
body: <p>I am working with a RichTextBox in C#. It exists on a TabPage. When the TabPage is selected, I aim to populate the RichTextBox, and scroll to the end. I have tried the slight variations on solutions for this common question, the main one being along the lines of:</p>
  
  <pre><code>MyRichTextBox.Select(MyRichTextBox.Text.Length, 0);  
  MyRichTextBox.ScrollToCaret();  
  </code></pre>
  
  <p>or:  </p>
  
  <pre><code>MyRichTextBox.SelectionStart = MyRichTextBox.Text.Length;  
  MyRichTextBox.ScrollToCaret();  
  </code></pre>
  
  <p>This is producing inconsistent results, albeit in a predictable manner. It will alternate between scrolling to the bottom, and scrolling one line short of the bottom. Respectively illustrated (sorry for the links, new user so I can't post the images):<br>
  <a href="http://oi41.tinypic.com/2zh45l2.jpg" rel="nofollow noreferrer">Successfully scrolled to bottom</a><br>
  <a href="http://oi43.tinypic.com/2gvskxx.jpg" rel="nofollow noreferrer">Scrolled to one line short of the bottom</a><br>
  I am surprised to find nothing mentioning this behaviour through my searches, and have decided to ask if anyone here has encountered this, and/or has a solution in mind. If it comes down to it, I suppose I can go with something along the lines of <a href="https://stackoverflow.com/questions/205794/how-to-move-scroll-bar-up-by-one-line-in-c-sharp-richtextbox" title="How to move scroll bar up by one line? (In C# RichTextBox)">itsmatt's answer</a>.</p>