回答
你可以尝试这样的事情,我在一个项目中使用一次,它的工作:
[DllImport ("user32")]
private static extern long ShowScrollBar (long hwnd , long wBar, long bShow);
long SB_HORZ = 0;
long SB_VERT = 1;
long SB_BOTH = 3;
private void HideHorizontalScrollBar()
{
ShowScrollBar(listView1.Handle.ToInt64(), SB_HORZ, 0);
}
希望它能帮助。
@ bennyyboi的答案是不安全的,因为它不平衡的堆栈。你应该使用下面的代码,而不是针对的DllImport:
[System.Runtime.InteropServices.DllImport("user32", CallingConvention=System.Runtime.InteropServices.CallingConvention.Winapi)]
[return: System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)]
private static extern bool ShowScrollBar(IntPtr hwnd, int wBar, [System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)] bool bShow);
安德烈亚斯Reiff包括这上面再寻找后,他的评论,所以我想这一切很好地格式化。
有一个更简单的方法来消除下滚动条,并有垂直显示。它由确保报头,并且如果没有标题的行是listview.Width - 4
的宽度并且如果垂直滚动条显示然后listview.Width - Scrollbar.Width - 4;
以下代码演示功能如何:
lv.Columns[0].Width = Width - 4 - SystemInformation.VerticalScrollBarWidth;
这确实比选定的答案更干净,而且实际上是问题的根本原因。 ListView的列需要更小。感谢那个提示,它为我工作。 – Tobias 2015-09-16 14:35:26
这很简单,它的工作原理!做得好! – NothinRandom 2015-10-15 16:48:10
我不认为这将工作,如果您使用复选框行。另外我不认为固定值是好的,因为其他窗口设计可能会使用不同的尺寸。最后但并非最不重要的是,这不是一个更清洁的方法。如果你不想要一个滚动条,你应该隐藏/禁用它,而不是调整其他的东西,这样就不会显示。我不喜欢p/Invoke解决方案,但它仍然是比列宽调整更好的方法。 – 2016-10-19 14:03:32
的最佳解决方案是在这里给出的接受答案:How to hide the vertical scroll bar in a .NET ListView Control in Details mode
它的工作原理完美,你不需要一些技巧,如列宽调整。此外,您在创建控件时禁用滚动条。
缺点是您必须创建自己的列表视图类,该类视图派生自System.Windows.Forms.ListView
以覆盖WndProc
。但这是要走的路。
要禁用水平滚动条,请记住使用WS_HSCROLL
而不是WS_VSCROLL
(链接答案中使用了该选项)。 WS_HSCROLL
的值是0x00100000
。
- 1. 使用JavaScript禁用水平滚动条
- 2. 禁用slickgrid水平滚动条
- 3. JavaFX:禁用TableView的水平滚动条
- 4. Netbeans禁用水平滚动
- 5. 禁用UITableView水平滚动
- 6. 水平滚动+滚动条
- 7. AJAX使用滚动条水平滚动
- 8. 禁用水平拖动滚动
- 9. 防止显示水平滚动条? (C#)
- 10. C#WinForms TreeView删除水平滚动条
- 11. 水平滚动条与fullpage.js
- 12. webgrid与水平滚动条?
- 13. 水平滚动条问题
- 14. 水平滚动条宽度
- 15. Javascript水平滚动条
- 16. 删除水平滚动条
- 17. Macvim:水平滚动条
- 18. 水平滚动条丢失
- 19. 滚动条水平DIV
- 20. Mootools的水平滚动条
- 21. div的水平滚动条
- 22. 水平滚动条问题
- 23. jqGrid水平滚动条
- 24. 垂直滚动的水平滚动条
- 25. 如何禁用UIScrollView的水平滚动?
- 26. 在iPad上禁用水平滚动
- 27. 在PhpStorm中禁用水平滚动
- 28. 如何禁用NSScrollView的水平滚动?
- 29. 如何禁用jquery的水平滚动?
- 30. Bootstrap侧导航禁用水平滚动
嗨,你可以解释一下,或者你能告诉我如何在所有这些直接窗口API调用 – swordfish 2011-05-20 03:16:44
而不是'长hwnd'你可以使用'IntPtr hwnd'作为P/Invoke的第一个参数方法。 – 2012-06-27 09:56:02
其次,对于P/Invokes,alsways也可以看成pinvoke。 :) http://www.pinvoke.net/default.aspx/user32/ShowScrollBar.html给出签名[DllImport(“user32.dll”)] [return:MarshalAs(UnmanagedType.Bool)] public static extern bool ShowScrollBar (IntPtr hWnd,int wBar,[MarshalAs(UnmanagedType.Bool)] bool bShow); 唯一的问题(我认为)是Uwe已经提到的IntPtr。 – 2012-07-04 13:25:59