私は定期的に文字を(1秒おきに)追加しているテキストボックス(例としてtextBox1)を持っています。テキストがテキストボックスに収まらないほど長くなると、オーバーフローは実際にはテキストボックスの左側に向かいますが、それは通常の振る舞いではなく、最後の文字常に表示されます。TextBox ScrollToHorizontalOffsetは、テキストが長すぎるとスクロールしません。
textBox1.ScrollToHorizontalOffset(textBox1.GetRectFromCharacterIndex(textBox1.Text.Length).Right);
テキストの長さが十分に長くなるまで、これはうまく動作します:私は、私もやっている文字を追加しているとき、私はそれをやった 方法です。その後、スクロールは停止し、現在の左オーバーフローは残りますが、新しいオーバーフローはテキストボックスの右に移動します。テストのために私はすべての更新時にコンソールに を現在のテキストの長さを書いてtextBox1.GetRectFromCharacterIndex(textBox1.Text.Length).RIGHTよ:
... Length: 22 Rect.Right: 81.99 Length: 23 Rect.Right: 85.4 Length: 24 Rect.Right: 88.81 Length: 25 Rect.Right: 91.41 Length: 26 Rect.Right: 91.41 Length: 27 Rect.Right: 91.4099999999999 Length: 28 Rect.Right: 91.4099999999999 Length: 29 Rect.Right: 91.4099999999999 Length: 30 Rect.Right: 91.4099999999999 ... Length: 47 Rect.Right: 91.4099999999999 Length: 48 Rect.Right: 91.4099999999999 Length: 49 Rect.Right: 91.4099999999999 Length: 50 Rect.Right: 91.4099999999999 Length: 51 Rect.Right: 91.4099999999999 Length: 52 Rect.Right: 92.88 Length: 53 Rect.Right: 94.8199999999999 Length: 54 Rect.Right: 96.29 Length: 55 Rect.Right: 98.2299999999999 Length: 56 Rect.Right: 99.7 Length: 57 Rect.Right: 101.64
Text.Lengthが25である前に、テキストボックスがまだ広いですすべてに合うほど十分です。この時点以降、テキストはもう収まらなくなり、スクロールは長さが52になるまで行われます。