using System.Runtime.InteropServices;
private const int WS_HSCROLL = 0x100000;private const int WS_VSCROLL = 0x200000;private const int GWL_STYLE = (-16); [DllImport("user32.dll")] private static extern int GetWindowLong(IntPtr hwnd, int nIndex);
////// 判断是否出现垂直滚动条 /// /// 待测控件 ///出现垂直滚动条返回true,否则为false public static bool IsVerticalScrollBarVisible(Control ctrl) { if (!ctrl.IsHandleCreated) return false; return (GetWindowLong(ctrl.Handle, GWL_STYLE) & WS_VSCROLL) != 0; }
////// 判断是否出现水平滚动条 /// /// 待测控件 ///出现水平滚动条返回true,否则为false public static bool IsHorizontalScrollBarVisible(Control ctrl) { if (!ctrl.IsHandleCreated) return false; return (GetWindowLong(ctrl.Handle, GWL_STYLE) & WS_HSCROLL) != 0; }
ShowScrollBar Function
/*
* Scroll Bar Constants */ #define SB_HORZ 0 #define SB_VERT 1 #define SB_CTL 2 #define SB_BOTH 3/*
隐藏和显示滚动条
[DllImport("user32.dll")]public static extern bool ShowScrollBar(IntPtr hWnd, int wBar, bool bShow);
/** Scroll Bar Constants*/ public const int SB_HORZ = 0; public const int SB_VERT = 1; public const int SB_CTL = 2; public const int SB_BOTH = 3; /* * ShowWindow() Commands */ public const int SW_HIDE = 0; public const int SW_SHOW = 5;
private void button1_Click(object sender, EventArgs e) { ShowScrollBar(listView1.Handle,SB_VERT , false); }