Dot-Net

自定義 Windows 窗體捲動條

  • March 1, 2021

我在沒有正確答案的情況下搜尋了全球資訊網。

在我的 Windows 窗體應用程序中,我想更改屬於 FlowLayoutPanel 的捲動條的寬度。

捲動條是“自動”添加的,因為流佈局面板的內容比表單大。

從我在網上找到的內容來看,這似乎很棘手。

有什麼解決辦法嗎?

乾杯!

不,沒有辦法改變顯示在單個控制項上的捲動條的寬度(儘管有一個系統範圍的設置會影響所有應用程序中的所有捲動條)。

醜陋的事實是,低級捲動條控制項遠比看起來要復雜得多。基本上,由於為後台控制項設置的和/或視窗樣式, FlowLayoutPanelWindows 本身(而不是 .NET Framework)繪製了捲動條。不提供任何工具來更改或修改這些內置捲動條的繪製方式。與 WinForms 中其他更高級的修改不同,我們無法將此類消息發送到控制項的視窗過程。更糟糕的是,捲動條是在 的非客戶區繪製的,這意味著我們不能只覆蓋它的事件並自己處理捲動條的繪製。WS_HSCROLL``WS_VSCROLL``FlowLayoutPanel``FlowLayoutPanel``Paint

**不幸的是,如果您真的想自定義捲動條,您將不得不隱藏內置捲動條並滾動您自己的捲動條。**但是,如果您願意的話,它並不像聽起來那麼困難。CodeProject 上的這篇文章提供了一個很好的演練,介紹瞭如何創建您自己的可換膚捲動條作為使用者控制項,並將其用作您選擇的容器控制項中的替代品。

引用自:https://stackoverflow.com/questions/4325452