2008-10-15 156 views

回答

10

這是我做的:

using System.Runtime.InteropServices; 

[DllImport("user32.dll")] 
static extern int SendMessage(IntPtr hWnd, uint wMsg, 
           UIntPtr wParam, IntPtr lParam); 

然後調用:

SendMessage(myRichTextBox.Handle, (uint)0x00B6, (UIntPtr)0, (IntPtr)(-1)); 

似乎工作確定 - 你可能需要調整的東西一點,但。

希望有所幫助。

+0

我應該在哪裏調用SendMessage? – Nick 2017-03-12 10:14:45

0

window.scrollBy(0,20);

這將滾動窗口。 20是我過去使用的近似值,通常等於一行......但字體大小當然可能會影響一行真正的距離。

0

如果您可以獲取富文本框的滾動控件,則應該可以獲取其SmallChange屬性並使用該屬性滾動文本。

1

爲了將來的參考,EM_LINESCROLL消息是您發送給任何多行編輯控件以設置滾動位置的內容。您可以垂直或水平滾動。 詳情請參閱MSDN

您還可以使用豐富的編輯選擇方法,在這裏設置的字符索引(你可以用EM_LINEINDEX獲得),然後調用RichEdit.ScrollToCaret即:

RichEdit.SelectionStart = SendMessage(RichEdit.Handle, EM_LINEINDEX, ScrollTo, 0); 
RichEdit.ScrollToCaret(); 

這將滾動該行頂端的編輯控件。