您的位置:首页 > 其它

判断是否出现垂直滚动条

2013-11-23 18:54 309 查看
 

 

 

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


 

 

 

 

 

/article/2838615.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: