You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取WinForms TextBox控件默认垂直滚动条的位置

获取WinForms TextBox默认垂直滚动条位置的实现方案

TextBox通过VS设计器生成的默认滚动条属于Win32控件内置滚动条,没有公开的.NET原生属性可以直接读取位置,需要调用Windows系统API实现,具体步骤如下:

  • 第一步:引入所需命名空间与API声明
    首先在你的代码文件头部引入互操作服务命名空间:

    using System.Runtime.InteropServices;
    

    之后在对应的业务类(通常是窗体类)中添加API函数与常量声明:

    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    private static extern int GetScrollPos(IntPtr hWnd, int nBar);
    // 内置垂直滚动条的标识常量
    private const int SB_VERT = 1;
    
  • 第二步:调用API获取滚动条位置
    直接传入目标TextBox的句柄与垂直滚动条常量即可拿到当前位置:

    // 假设你的TextBox控件实例名为myTextBox
    int verticalScrollPosition = GetScrollPos(myTextBox.Handle, SB_VERT);
    

    返回值即为当前垂直滚动条的偏移位置,单位与控件滚动的像素单位一致。


注意事项

  • 该方法仅对已开启垂直滚动的TextBox生效,请提前确认控件的ScrollBars属性已设置为Vertical或Both,否则返回值始终为0。
  • 如果需要实时捕获滚动位置变化,可以绑定TextBox的Scroll事件,在事件回调中调用上述方法获取最新值,示例如下:
    private void myTextBox_Scroll(object sender, EventArgs e)
    {
        int currentPos = GetScrollPos(myTextBox.Handle, SB_VERT);
        // 此处添加你的业务逻辑
    }
    

内容的提问来源于stack exchange,提问作者morsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:48:03