Alf, болие чем правильно, ну очень надо, не может быть чтоб выхода небыло.
Ну если уж очень надо, то держи решение
Секрет кроется в двух свойствах объекта
TextBox:
SelectionStart и
SelectionLength. Они совместно задают фрагмент текста, который выделяется (точно так же, как можно выделить мышью, например). Если
SelectionStart указывает на конец текста, а
SelectionLength=0, то получается тот самый эффект, который тебе нужен.
Во-первых, добавляешь в свою форму код что-то вроде:
private void TxtChange(object sender, System.EventArgs e)
{
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.SelectionLength = 0;
}
Этот обработчик события заставляет текущую позицию переместиться в конец строки
textBox1.
Во-вторых, прицепляешь его к событию
TextChanged, которое возникает при изменении текста
textBox1. В текст метода
InitializeComponent добавляешь строчку:
this.textBox1.TextChanged += new System.EventHandler(this.TxtChange);
, которая связывает обработчик с событием.
Все! Теперь при
любом изменении текста, неважно, вручную или программно, он будет прокручиваться влево ровно настолько, сколько нужно.
Постарайся проверить побыстрее, пока я на работе. Если вдруг не получится (хотя вряд ли), пришлю тестовый проект, на котором испытал идею.
Как говорит Фоменко, "даже если вас съели, у вас есть целых два выхода".