Контролировать положение вертикальных полос прокрутки - PullRequest
1 голос
/ 28 ноября 2009

У меня есть многострочное текстовое поле (назовем его textBox1), в котором много текста.

После поиска я выделяю искомую строку:

textBox1.SelectionStart = textBox1.Text.ToLower().IndexOf(STRING);  
textBox1.SelectionLength = STRING.Length;

Теперь, когда я вызываю форму, которая содержит текстовое поле, она выделяет выделенный текст, но я хотел бы, чтобы полосы прокрутки автоматически прокручивали до выделенного текста.

Я пытался

textBox1.ScrollToCaret();  

Но не сработало.

Есть идеи?

Спасибо.

1 Ответ

2 голосов
/ 28 ноября 2009

С какого события вы стреляете? Form, вероятно, не в состоянии, где он может это обработать. Если вы позвоните с Form.Load, это будет слишком скоро. Если вы звоните с Form.Shown, он должен работать правильно.

private void Form1_Shown(object sender, EventArgs e) {
    var STRING = "Suspendisse mi risus";

    textBox1.SelectionStart = textBox1.Text.IndexOf(STRING);
    textBox1.SelectionLength = STRING.Length;

    textBox1.ScrollToCaret();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...