AutoScrolling, as provided by ScrollableControl.AutoScroll, does not allow you to dynamically control the scrolling interval. If you are drawing a complex control such as grid then you want to be able to scroll based on the current row height, column width etc. With AutoScrolling you cannot do this. In such cases you should implement scrolling yourself.
AutoScrolling is also not very useful if you want multiple views to share a scrollbar. The most common place where you see this is with a workbook. There is no direct way in Windows Forms to hook up your own scrollbars with the AutoScrolling implementation.
Contributed from George Shepherd's Windows Forms FAQ