| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > NumericUpDown инкремент и декримент? |
| Автор: myendlessness 9.7.2009, 14:38 | ||
| Вопрос вроде изначально простой, но тут ответа на него не нашёл? Я хочу сделать так чтобы начиная с 16 число увеличивалось со степенью двойки например 16,32,64,128 и так до 2048, а потом таким же образом уменьшалось. Установил minimum 16, maximum 2048, value = 16, increment = 16 дальше такой код:
вверх работает нормально, а вот вниз сразу перескакивает с 2048 на 16, а когда пытаюсь сделать метод "private void numericUpDown3_MouseDown" и что-либо там написать, то получается так, что неважно нажимаю я вверх или вних, первым обрабатывается метод MouseDown, а уже затем MouseUp Ничего не могу понять! Подскажите, пожалуйста, если кто знает? |
| Автор: diadiavova 9.7.2009, 15:26 |
| Я бы использовал System.Windows.Forms.DomainUpDown |
| Автор: myendlessness 10.7.2009, 10:40 |
| Попробовал и System.Windows.Forms.DomainUpDown такая же беда, неважно нажимаю я вверх или вниз он выполняет два метода MouseDown и MouseUp ничего не могу понять, где зарыта собака, видимо что-то надо изменить в свойствах, так же не должно быть! |
| Автор: diadiavova 10.7.2009, 12:03 |
| События MouseDown и MouseUp происходят когда по контролу клацают мышкой и не имеет значения в каком месте. Первое - когда нажимаешь кнопку мыши, второе - когда её отпускаешь. Можно отследить события ValueChanged для нумерикапдауна и SelectedItemChange для доменапдауна. Только я не понял зачем. Доменапдаун решает описанную тобой проблему дез отслеживания событий, просто надо добавть в него нужный список значений. Или я не понял чего-то? |
| Автор: myendlessness 10.7.2009, 14:55 |
| Я просто не работал с этими тулбоксами поэтому не знаю как сделать, вот и ищу решение. Если не трудно напиши, пожалуйста, как именно это сделать? |
| Автор: diadiavova 10.7.2009, 15:05 |
| Всё сделано в дизайнере. Ни одной строчки ручного кода |
| Автор: myendlessness 13.7.2009, 11:34 |
| Спасибо за помощь, однако, осталось выяснить два вопроса! Почему увеличение происходит когда я жму на нижнюю стрелочку, обычно везде вверх - увеличивать, вниз - уменьшать, а в примере наоборот? И второй вопрос, как сделать так чтобы изначально при запуске было 16, если присвоить Text=16, то это сработает один раз? |
| Автор: myendlessness 14.7.2009, 11:42 |
| Я хочу сделать так чтобы начиная с 16 число увеличивалось со степенью двойки например 16,32,64,128 и так до 2048, а потом таким же образом уменьшалось. То есть запускаем форму и в окне DomainUpDown показывает 16 дальше я могу мотать вверх или вниз, если нажимаю стрелочку вверх, то увеличивается 16, 32 и тд до 2048, но в любой момент я могу начать нажимать стрелочку вниз и оно должно уменьшать так же, то есть например остановился на 1024, а затем начал нажимать стрелочку вниз 1024,512,256 и так до 16. Надеюсь написал подробно. Вроде и задача простая но сделать что-то не получается! |
| Автор: diadiavova 14.7.2009, 13:19 |
| Ну я же пример выложил. Что с ним не так? |
| Автор: myendlessness 14.7.2009, 14:11 |
| 1-ая Нажимаю на нижнюю стрелочку и начинает увеличиваться от 16 и до 2048, а логично было бы чтобы увеличивалось при нажатии на верхнюю стрелочку, а уменьшалось при нажатии на нижнюю 2-ая Счёт надо начинать с 16 и чтобы сразу при загрузке формы отображало 16( в окне DomainUpDown), а не что-либо ещё, можно конечно сделать Text=16, но это не решает вопроса |
| Автор: diadiavova 14.7.2009, 16:34 | ||||
Как это не странно - у меня тоже.
Я ведь ответил уже на этот вопрос. Доменапдаун будет отображать то что в него заведено и в той последовательности, в которой эти значения в него добавлены. Для того, чтобы решить проблему всего-навсего надо список значений переписать в обратном порядке.
Почему это не решает? Переделал за пару минут |
| Автор: myendlessness 15.7.2009, 11:11 |
| Видимо мы всё-таки нашли общий язык Ещё хотел уточнить один момент, какое именно свойство Вы изменили, чтобы началось с 16? там Text=domainUpDown1 а при запуске отображает 16! |
| Автор: diadiavova 15.7.2009, 11:16 | ||
SelectedIndex. И зделал я это в коде, а именно в обработчике загрузки формы. Я писал уже об этом
|