如果您的問題與「垂直滾動」滾動下來的時候,你要添加的記錄文本,但你會希望它是在上面所有的時間:
你必須添加事件處理程序VSCROLL,框TextChanged事件和事件處理程序設置滾動到頂部
richTextBox1.VScroll += HandleRichTextBoxAdjustScroll;
richTextBox1.TextChanged += HandleRichTextBoxAdjustScroll;
private const UInt32 SB_TOP = 0x6;
private const UInt32 WM_VSCROLL = 0x115;
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("user32.dll", SetLastError = true)]
private static extern bool PostMessage(IntPtr hWnd, UInt32 Msg,
IntPtr wParam, IntPtr lParam);
private void HandleRichTextBoxAdjustScroll(Object sender,
EventArgs e)
{
PostMessage(handle, WM_VSCROLL, (IntPtr)SB_TOP, IntPtr.Zero);
}
你就可以用水平滾動條相同了。與WM_HSCROLL和SB_TOP與SB_LEFT更換WM_VSCROLL
private const UInt32 WM_HSCROLL = 0x0114;
private const UInt32 SB_LEFT = 0x06;
這聽起來有些奇怪,因爲去年底應明確的地方進行。你確定追加的代碼不會將選擇設置到最後? –
不,只是AppendText(「text」),AppendText(「\ t」),Appendtext(「\ n」) – truthseeker
我發現有趣的事情。自動滾動僅在文本區域具有焦點時發生。點擊進入文本區域後,出現問題。如果我沒有點擊它,我可以在滾動條上滾動消息,同時添加新消息並且文本不會跳躍。 – truthseeker