判断是否出现垂直滚动条

 

 

 

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);

 

/// <summary>
        /// 判断是否出现垂直滚动条
        /// </summary>
        /// <param name="ctrl">待测控件</param>
        /// <returns>出现垂直滚动条返回true,否则为false</returns>
        public static 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>
        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);   
        }

 

 

 

 

 

http://blog.csdn.net/ltolll/article/details/7637995

posted @ 2013-11-23 18:54  XE2011  阅读(672)  评论(0编辑  收藏  举报