Не можете отменить выбор NumericUpDown? - PullRequest
1 голос
/ 24 августа 2011

Если вы создаете новый проект C # и помещаете NumericUpDown в форму (или даже текстовое поле в этом отношении), невозможно отменить выбор?

В настоящее время мое приложение имеет прокручиваемый контейнер, и когда пользователь выбираетNumericUpDown он или она не может отменить его выбор.Затем при попытке использовать колесо прокрутки мыши для чего-либо, оно прокручивает значение NumericUpDown.

В идеале, когда пользователь щелкает пустое место в форме, он выбирает форму и отменяет выбор NumericUpDown.Либо это, либо отключите прокрутку колесиком мыши на NumericUpDown в целом (также не знаете, как это сделать).NumericUpDown содержит данные, которые не обязательно будут часто меняться, поэтому они не сильно повлияют на пользователя.

Ответы [ 2 ]

4 голосов
/ 24 августа 2011

Чтобы отключить прокрутку колесика мыши на NumericUpDown, необходимо создать собственный дочерний элемент управления, который переопределяет событие OnMouseWheel, и использовать пользовательский элемент управления в своей форме.

public class NonScrollingNumericUpDown : NumericUpDown
{
    protected override void OnMouseWheel(MouseEventArgs e)
    {
           //Don't call base.OnMouseWheel(e)
    }
}

Чтобы ответить на ваш вопрос о контроле Focus, я полагаю, что вам понадобится хотя бы еще один элемент управления в форме, чтобы передать фокус тоже.

3 голосов
/ 24 августа 2011

Добавьте метку к форме и очистите ее Text свойство.В результате у вас будет ярлык, который не будет виден, но все же сможет получить фокус.

На событии Click вашей формы вызовите этот код, чтобы установить фокус на ярлык:

label1.Focus();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...