/// <summary>
        ///     Enables scrolling the given <paramref name="control"/> vertically with the
        ///     <kbd>Up</kbd>, <kbd>Down</kbd>, <kbd>Page Up</kbd>, and <kbd>Page Down</kbd> keys.
        /// </summary>
        /// <param name="control">
        ///     A scrollable control that requires keyboard support for vertical scrolling.
        /// </param>
        public static void EnableVerticalKeyboardScroll(this ScrollableControl control)
        {
            KeyEventHandler onKeyDown = (sender, args) => OnKeyDown(control, args);

            var form = control.FindForm();

            if (form == null)
            {
                control.KeyDown += onKeyDown;
                return;
            }

            form.KeyPreview = true;
            form.KeyDown   += onKeyDown;
        }