对于我的 C# RichTextBox,我想以编程方式执行与单击垂直滚动条顶部的向上箭头相同的操作,这会将 RichTextBox 显示向上移动一行。这个代码是什么?谢谢!
John
问问题
11103 次
4 回答
11
这就是我所做的:
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));
似乎工作正常 - 不过,您可能需要稍微调整一下。
希望有帮助。
于 2008-10-15T18:41:11.807 回答
1
为了将来参考,EM_LINESCROLL 消息是您发送到任何多行编辑控件以设置滚动位置的消息。您可以垂直或水平滚动。有关详细信息,请参阅MSDN。
您还可以使用 Rich Edit Selection 方法,在其中设置字符索引(可以使用 EM_LINEINDEX 获得)然后调用 RichEdit.ScrollToCaret 即:
RichEdit.SelectionStart = SendMessage(RichEdit.Handle, EM_LINEINDEX, ScrollTo, 0);
RichEdit.ScrollToCaret();
这会将该行滚动到编辑控件的顶部。
于 2008-10-15T20:09:42.127 回答
0
window.scrollBy(0,20);
这将滚动窗口。20 是我过去使用的一个近似值,通常等于一行……但当然字体大小可能会影响一行的实际距离。
于 2008-10-15T18:17:01.433 回答
0
如果您可以获得富文本框的滚动控件,您应该能够获得它的 SmallChange 属性并使用它来滚动文本。
于 2008-10-15T18:29:12.237 回答