控制带有滚动条的控件(ListView,TreeView等)的滚动条显示
2011-07-18 14:03
337 查看
这是一个小小的组件,实现控制带有滚动条的控件(ListView,TreeView等)的滚动条显示。 带有滚动条的控件,通常情况下都是需要显示滚动条的时候,如果水平滚动条和垂直滚动条都需要显示,就一起显示出来。但是有的时候我们只想让其只显示一条滚动条,例如只显示垂直滚动条,我们应该怎么办呢?我们可以通过API函数:ShowScrollBar (查看)来实现。另外,我们可以通过API函数:GetWindowLong (查看)来查询当前控件是否需要显示滚动条。先定义好这两个API函数:
现在,我们可以继承 NativeWindow 来写出我们需要的组件了。主要是重载 WndProc 函数:
最后,来看看关键的 HideScrollBar 函数。
[DllImport("user32.dll")] private static extern int ShowScrollBar(IntPtr hWnd, int iBar, int bShow); [DllImport("user32.dll")] private static extern int GetWindowLong(IntPtr hwnd, int nIndex);
现在,我们可以继承 NativeWindow 来写出我们需要的组件了。主要是重载 WndProc 函数:
protected override void WndProc(ref Message m) { HideScrollBar(ref m); base.WndProc(ref m); }
最后,来看看关键的 HideScrollBar 函数。
private void HideScrollBar(ref Message m) { int dwStyle = GetWindowLong(base.Handle, GWL_STYLE); switch (_scrollBar) { case SB.SB_HORZ: if ((dwStyle & WS_HSCROLL) == WS_HSCROLL) { ShowScrollBar(base.Handle, (int)_scrollBar, 0); } break; case SB.SB_VERT: if ((dwStyle & WS_VSCROLL) == WS_VSCROLL) { ShowScrollBar(base.Handle, (int)_scrollBar, 0); } break; } }
相关文章推荐
- 控制带有滚动条的控件(ListView,TreeView等)的滚动条显示
- 控制带有滚动条的控件(ListView,TreeView等)的滚动条显示
- ListView控件显示 图片加文字说明 并且可以对滚动条进行控制
- 【学习】ListView中控制子控件的隐藏和显示
- WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条)
- C#调用P/Invoke显示、隐藏和移动ListView 控件中的滚动条
- 使用设计器创建带有 ListView 和 TreeView 控件的资源管理器样式的界面 [无限级treeview]
- 如何隐藏TreeView,ListView等带有标准滚动条窗体的滚动条
- 使用设计器创建带有 ListView 和 TreeView 控件的资源管理器样式的界面
- 控制ListView(RecyclerView)中Adapter中的控件的显示和隐藏
- C#TreeView控件如何控制滚动条的位置
- Android中ListView条目带有左滑显示删除按钮的总结
- 线性布局控制控件居右显示
- MFC 控件显示层次调整(叠放次序)和绘制控制问题
- [资源分享]Win10系统IE浏览器中treeview控件的显示
- android 关于listview scrollview 底部 控件无法显示的两个解决方案
- 【Android开发学习28】界面控件之列表控件(ListView)--显示字符数组
- c# winform项目treeview控件绑定本地电脑磁盘信息,读取文件夹信息,显示文件夹内文件内容
- 使用ASP.NET2.0的TreeView控件显示分层数据
- 安卓ListView控件显示