我正在创建一个应用程序,我必须在RichTextBox中添加某些警告。目标是使其自动减速,以便用户可以阅读警告。我已经研究过自动滚动到最后,但我想要的是慢慢滚动直到richtextbox的结尾。
这是我的代码
foreach (var item in MyService.GetAviso())
{
RTB_Avisos.Text = RTB_Avisos.Text + item.ToString() + Environment.NewLine;
if (aux_Avisos == 2)
{
RTB_Avisos.Text = RTB_Avisos.Text + Environment.NewLine;
aux_Avisos = 0;
}
else
aux_Avisos++;
RTB_Avisos.SelectionStart = RTB_Avisos.Text.Length;
RTB_Avisos.ScrollToCaret();
}
我有
RTB_Avisos.SelectionStart = RTB_Avisos.Text.Length;
RTB_Avisos.ScrollToCaret();
但我希望不断地立即获得滚动。
ANSWER
经过长时间的搜索,我找到答案,这不是最好的方法,但它是一个解决方案。您可以创建计时器,当他tick
放置该代码时:
private void timer3_Tick(object sender, EventArgs e)
{
order = linePos == RTB_Avisos.Lines.Length - 1 ? -1 : linePos == 0 ? 1 : order;
linePos += order;
int offset = 0;
for (int i = 0; i < linePos && i < RTB_Avisos.Lines.Length; i++)
offset += RTB_Avisos.Lines[i].Length + 1;
RTB_Avisos.Focus();
RTB_Avisos.Select(offset, 0);
}
此代码将对行进行计数,并以确定的时间间隔减慢速度。当我们得到最后一行RTB时,回到开头。
Ty求救......