我在richTextbox1中添加了很多文本,我右边有一个滚动条,但里面的文字是添加所有时间剂量滚动的行。 只有当我用鼠标向下拖动右边的栏时,才会看到文字滚动。
一旦内部文本到达richTextbox的底部,我想让它自动滚动。
我该怎么做?
答案 0 :(得分:4)
每当在RichTextBox控件中添加文本时,您应该执行这些语句以将光标移动到RichTextBox中文本的末尾。假设RichTextBox控件的名称是richTextBox,你可以使用下面的语句。
richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
答案 1 :(得分:2)
此代码完美无缺: ------
namespace CustomRTB
{
public class CustomRTB : RichTextBox
{
#region API Stuff
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int GetScrollPos(IntPtr hWnd, int nBar);
[DllImport("user32.dll")]
private static extern int SetScrollPos(IntPtr hWnd, int nBar, int nPos, bool bRedraw);
private const int SB_HORZ = 0x0;
private const int SB_VERT = 0x1;
#endregion
public int HorizontalPosition
{
get { return GetScrollPos((IntPtr)this.Handle, SB_HORZ); }
set { SetScrollPos((IntPtr)this.Handle, SB_HORZ, value, true); }
}
public int VerticalPosition
{
get { return GetScrollPos((IntPtr)this.Handle, SB_VERT); }
set { SetScrollPos((IntPtr)this.Handle, SB_VERT, value, true); }
}
}
}
您可以查看 RichTextBox类包含的属性
public RichTextBoxScrollBars ScrollBars {get;组; }
此属性使您可以向RichTextBox控件的用户提供水平和垂直滚动条以启用滚动。