Посмотрев вокруг похожих вопросов, я обнаружил, что вы также можете обойти это без создания подкласса - например, этот код даст вам numericUpDown, который будет прокручиваться только на один (и только когда элемент управления имеет фокус).
Настройка делегата в конструкторе контейнера:
numericUpDown1.MouseWheel += new MouseEventHandler(this.ScrollHandlerFunction);
... затем определите функцию в другом месте класса:
private void ScrollHandlerFunction(object sender, MouseEventArgs e)
{
HandledMouseEventArgs handledArgs = e as HandledMouseEventArgs;
handledArgs.Handled = true;
numericUpDown1.Value += (handledArgs.Delta > 0) ? 1 : -1;
}
Вам также следует убедиться, что вы не пытаетесь прокрутить пределы диапазона, потому что это приведет к сбою.