Как отключить прокрутку для NumericUpDown в форме Windows - PullRequest
0 голосов
/ 22 января 2020

Я пытался найти способ отключить прокрутку NumericUpDown при случайном наведении курсора мыши на NumericUpDown. Есть ли способ сделать это с помощью свойств?

Я нашел способ отключить его с помощью кода для комбинированного списка, но не непосредственно на панели «Свойства» в представлении «Конструктор».

Это было код, который я нашел:

    void comboBox1_MouseWheel(object sender, MouseEventArgs e) {
        ((HandledMouseEventArgs)e).Handled = true;
    }

Я нашел код по этой ссылке:

C# - как предотвратить прокрутку колесика мыши в моем поле со списком?

У меня много таких NumericUpDowns в моем дизайне, и поэтому я хотел бы иметь возможность просто отключить прокрутку мыши, когда я случайно наведу курсор мыши на NumericUpDown. Так что, если есть способ сделать это непосредственно в свойствах, это очень поможет. Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 22 января 2020

Вы не можете установить это в свойствах дизайнера. Но вы можете использовать небольшой чит-код для этого:

private void Form1_Load(object sender, EventArgs e)
{
    foreach (Control ctl in Controls)
    {
        if (ctl.GetType() == typeof(NumericUpDown))
            ctl.MouseWheel += Ctl_MouseWheel;
    }
}

private void Ctl_MouseWheel(object sender, MouseEventArgs e)
{
    ((HandledMouseEventArgs) e).Handled = true;
}

Я только что проверил это, и он отлично справился со своей задачей.

0 голосов
/ 22 января 2020

Если вам не нужны кнопки «Вверх» и «Вниз», вы можете установить для свойства Increment значение 0

.
...