Dez Max Asked:2020-10-31 23:42:11 +0000 UTC2020-10-31 23:42:11 +0000 UTC 2020-10-31 23:42:11 +0000 UTC 检查richTextBox是否滚动到最后 772 我的任务是当用户滚动到文本末尾时,执行我需要的代码。但是无论我如何搜索,我都找不到检查卷轴位置的方法。 如何实施? c# 1 个回答 Voted Best Answer andreyLv 2020-11-01T05:02:29Z2020-11-01T05:02:29Z 这里有一个选项可以获取滚动的位置和它的参数信息(我想你以后会自己弄明白的)。主要是了解SCROLLINFO结构。为此,我附上 了 SCROLLINFO 结构的 MSDN 描述的链接 获取滚动信息 MSDN 俄语也一样 [DllImport("user32.dll")] private static extern bool GetScrollInfo(IntPtr hWnd, int nBar, ref SCROLLINFO ScrollInfo); [StructLayout(LayoutKind.Sequential)] public struct SCROLLINFO { public int cbSize; public int fMask; public int nMin; public int nMax; public int nPage; public int nPos; public int nTrackPos; } public enum ScrollBarType : uint { SbHorz = 0, SbVert = 1, SbCtl = 2, SbBoth = 3 } private const int SB_VERT = 0x1; private const int SB_HORZ = 0x0; private const int SIF_PAGE = 0x2; private const int SIF_POS = 0x4; private const int SIF_RANGE = 0x1; private const int SIF_TRACKPOS = 0x10; private const int SIF_ALL = (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS); private void richTextBox1_VScroll(object sender, EventArgs e) { SCROLLINFO si = new SCROLLINFO(); si.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(si); si.fMask = SIF_ALL; GetScrollInfo(richTextBox1.Handle, (int)ScrollBarType.SbVert, ref si); textBox1.Text = si.nPos.ToString(); textBox2.Text = si.nMax.ToString(); textBox3.Text = si.nPage.ToString(); }
这里有一个选项可以获取滚动的位置和它的参数信息(我想你以后会自己弄明白的)。主要是了解SCROLLINFO结构。为此,我附上
了 SCROLLINFO 结构的 MSDN 描述的链接
获取滚动信息 MSDN
俄语也一样