控制垂直滚动条的位置

时间:2009-11-28 20:39:55

标签: c# forms

我有一个多行文本框(让我们称之为textBox1)里面有很多文字。

在搜索之后,我突出显示我正在寻找的字符串:

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

现在,当我调用包含文本框的表单时,它会突出显示所选文本,但我想要做的是滚动条会自动滚动到突出显示的文本。

我试过

textBox1.ScrollToCaret();  

但没效果。

有什么想法吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

你从哪个事件中解雇了这个? 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();
}