powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / UpDown
16 сообщений из 16, страница 1 из 1
UpDown
    #33946585
ech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть поле с датой. Как мне использовать компонент Updown чтобы увеличивать дату на 1 день? Как вообще в событии change этого компонента определить какая стрелка нажата?
...
Рейтинг: 0 / 0
UpDown
    #33946677
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
Private Sub udDocDate_Change()
    Me.dtpDocDate.Value = DateAdd("D", Me.udDocDate.Value, Me.dtpDocDate.Value)
    Me.udDocDate.Value =  0 
End Sub
...
Рейтинг: 0 / 0
UpDown
    #33946693
ech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как быть если я нажму стрелку для уменьшения даты на 1 ?
...
Рейтинг: 0 / 0
UpDown
    #33946694
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
используй готовы контрол
DTPicker
с свойством UpDown
...
Рейтинг: 0 / 0
UpDown
    #33946902
ech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvan : а как быть если я нажму стрелку для уменьшения даты на 1 ?
...
Рейтинг: 0 / 0
UpDown
    #33946948
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
echmarvan : а как быть если я нажму стрелку для уменьшения даты на 1 ?
с минусом
у даты есть год месяц день
Me.Caption = DateAdd("D", -1, Date)
уменшает день на один
месяц "M"
...
Рейтинг: 0 / 0
UpDown
    #33947150
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echа как быть если я нажму стрелку для уменьшения даты на 1 ?
Дата уменьшится. Функция 'DateAdd' работает и на вычитание.
Код: plaintext
1.
2.
3.
Private Sub udDocDate_Change()
    Me.dtpDocDate.Value = DateAdd("D", Me.udDocDate.Value, Me.dtpDocDate.Value)
    Me.udDocDate.Value =  0 
End Sub
Этот код достаточно добавить в форму и забыть о его существовании.
...
Рейтинг: 0 / 0
UpDown
    #33947231
ech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну это понятно а как отслеживать какой батон нажат вверх или вниз???
...
Рейтинг: 0 / 0
UpDown
    #33947248
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
echну это понятно а как отслеживать какой батон нажат вверх или вниз???
для UPDown
у каждого батона есть свое событие

Код: plaintext
1.
2.
3.
4.
5.
Private Sub UpDown_UpClick()

End Sub
Private Sub UpDown_DownClick()

End Sub
...
Рейтинг: 0 / 0
UpDown
    #33947260
ech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
UpDown
    #33947300
ech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private Sub udDocDate_Change()
Me.dtpDocDate.Value = DateAdd("D", Me.udDocDate.Value, Me.dtpDocDate.Value)
Me.udDocDate.Value = 0
End Sub

написал это в код у меня выбрасывает переполнение стэка
...
Рейтинг: 0 / 0
UpDown
    #33947305
ech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишит out stack space
...
Рейтинг: 0 / 0
UpDown
    #33947336
ech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
udDocDate_Change()
постоянно в этом событиии нахожусь а потом вылетает на переполнение стека
...
Рейтинг: 0 / 0
UpDown
    #33947353
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слыхал про рекурсию? Так вот у тебя происходит рекурсивная генерация события. Нельзя, находясь в обработчике события, изменять свойство, которое его гененрит.
...
Рейтинг: 0 / 0
UpDown
    #33947368
ech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как быть??
...
Рейтинг: 0 / 0
UpDown
    #33947371
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echudDocDate_Change()
постоянно в этом событиии нахожусь а потом вылетает на переполнение стека

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private fMode As Boolean

Private Sub udDocDate_Change()
    If fMode Then Exit Sub
    Me.dtpDocDate.Value = DateAdd("D", Me.udDocDate.Value, Me.dtpDocDate.Value)

    fMode = True
    Me.udDocDate.Value =  0 
    fMode = False
End Sub
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / UpDown
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]