回答
你可以嘗試這樣的事情,我在一個項目中使用一次,它的工作:
[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