C#判断Winform控件是否出现滚动条

参考代码

private const int WS_HSCROLL = 0x100000;
private const int WS_VSCROLL = 0x200000;
private const int GWL_STYLE = (-16);

[System.Runtime.InteropServices.DllImport("user32",CharSet = System.Runtime.InteropServices.CharSet.Auto)]
private static extern int GetWindowLong(IntPtr hwnd, int nIndex);

/// <summary>
/// 判断是否出现垂直滚动条
/// </summary>
/// <param name="ctrl">待测控件</param>
/// <returns>出现垂直滚动条返回true,否则为false</returns>
private bool IsVerticalScrollBarVisible(Control ctrl)
{
    if (!ctrl.IsHandleCreated)
        return false;

    return (GetWindowLong(ctrl.Handle, GWL_STYLE) & WS_VSCROLL) != 0;
}

/// <summary>
/// 判断是否出现水平滚动条
/// </summary>
/// <param name="ctrl">待测控件</param>
/// <returns>出现水平滚动条返回true,否则为false</returns>
private  bool IsHorizontalScrollBarVisible(Control ctrl)
{
    if (!ctrl.IsHandleCreated)
        return false;
    return (GetWindowLong(ctrl.Handle, GWL_STYLE) & WS_HSCROLL) != 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容