認(rèn)知尚淺,如有錯誤,愿聞其詳!
概述
??最近在做自定義控件的時候,為了解決一個問題:使用一個外部ScrollBar去控制一個具有滾動效果的控件滾動。如下:

滑條控制帶滑條的FlowLayoutPanel滾動.png
(也不曉得我咋來的騷操作)
后來源于對控件屬性不太了解,走了很多彎路。想過用VScrollBar去控制控制控件滾動幅度,沒能做出來,后來想著直接去控制控件的滑條,也就有了下面的方法。
解決
首先我們了解Scroll的兩個屬性,LargeChange和SmallChange,如下,微軟文檔的解釋:

LargeChange And SmallChange.png
實(shí)現(xiàn)
//首先需要修改一下flowLayoutPanel的高度,這樣才能回去并賦值以下參數(shù),
flowLayoutPanel.Height = panel.Height;
//通過外部VScrollBar 的Maximum 、SmallChange、LargeChange
//與控件的Scroll控件的相應(yīng)參數(shù)值一致
scrollControl.Maximum = flowLayoutPanel.VerticalScroll.Maximum;
scrollControl.SmallChange = flowLayoutPanel.VerticalScroll.SmallChange;
scrollControl.LargeChange = flowLayoutPanel.VerticalScroll.LargeChange;
這樣就實(shí)現(xiàn)了,不過其中也會有BUG,就是通過將外部VScrollBar的Value賦值給控件的Scroll的Value時,會出現(xiàn)第一次VScrollBar的Value = 10,賦值給控件的Scroll時卻沒賦上,下一次再賦值才會賦值上,但是界面卻滾動了,很迷。
效果

實(shí)現(xiàn)控制.gif