簡體   English   中英

如何將滾動條向上移動一行? (在C#RichTextBox中)

[英]How to move scroll bar up by one line? (In C# RichTextBox)

對於我的C#RichTextBox,我想以編程方式執行與單擊垂直滾動條頂部的向上箭頭相同的操作,這會將RichTextBox顯示向上移動一行。 這是什么代碼? 謝謝!

這是我做的:

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));

似乎工作正常 - 但你可能需要稍微調整一下。

希望有所幫助。

為了將來參考,EM_LINESCROLL消息是您發送到任何多行編輯控件以設置滾動位置的消息。 您可以垂直或水平滾動。 有關詳細信息,請參閱MSDN

您還可以使用Rich Edit Selection方法設置字符索引(可以使用EM_LINEINDEX獲得),然后調用RichEdit.ScrollToCaret,即:

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

這會將該行滾動到編輯控件的頂部。

window.scrollBy(0,20);

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM