对于我的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归因
不隶属于 StackOverflow
scroll top