MonthView DateClick и DateDblClick

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
caa2000
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 14.05.2009 (Чт) 4:50

MonthView DateClick и DateDblClick

Сообщение caa2000 » 28.04.2013 (Вс) 23:43

Всем здравствуйте.
Хотелось бы,чтобы DateClick открывал диалоговое окно, а DateDblClick закрывал. Но, ИМХО, DateDblClick и DateClick как-то пересекаются. При DateDblClick окно закрывается и тут-же открывается снова.
Есть кнопка close ,но лучше DateDblClick.
Код: Выделить всё
Dim frmHeightUp As Integer
Dim frmHeightDown As Integer


Код: Выделить всё
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
ChckBold
DtClick = DateClicked
Form1.Height = frmHeightDown
Text2.Text = DateString

ChckEntry
Text1.Text = EntryText

End Sub


Код: Выделить всё
Private Sub cmdClose_Click()
Text1.Text = ""
Form1.Height = frmHeightUp
End Sub


Код: Выделить всё
Private Sub MonthView1_DateDblClick(ByVal DateDblClicked As Date)
Text1.Text = ""
Form1.Height = frmHeightUp
End Sub


Есть вариант может быть?
Плз :roll: :roll:
Имеющий уши, да услышит.. (с) Новый Завет От Матфея святое благовествование

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: MonthView DateClick и DateDblClick

Сообщение pronto » 29.04.2013 (Пн) 11:47

Конечно, варианты есть всегда! Например:
Код: Выделить всё
Private DialogVisible As Boolean

Option Explicit

Private Sub Picture1_Click()
   If DialogVisible = False Then
      Debug.Print "Показать диалог"
      DialogVisible = True
   End If
End Sub

Private Sub Picture1_DblClick()
   If DialogVisible = True Then
      Debug.Print "Скрыть диалог"
      DialogVisible = False
   End If
End Sub
O, sancta simplicitas!

caa2000
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 14.05.2009 (Чт) 4:50

Re: MonthView DateClick и DateDblClick

Сообщение caa2000 » 30.04.2013 (Вт) 9:43

To pronto:
Спасибо,попробую.
А действительно -вариант :)
Имеющий уши, да услышит.. (с) Новый Завет От Матфея святое благовествование

caa2000
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 14.05.2009 (Чт) 4:50

Re: MonthView DateClick и DateDblClick

Сообщение caa2000 » 03.05.2013 (Пт) 13:09

Не-а не выходит.
Код: Выделить всё
Dim EntryTextOpen As Boolean

Private Sub Form_Load()
.......
EntryTextOpen = False
Debug.Print EntryTextOpen
End Sub

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
DtClick = DateClicked
Debug.Print EntryTextOpen
If EntryTextOpen = False Then
Form1.Height = frmHeightDown
Text2.Text = DateString
Text1.Text = EntryText
End If
EntryTextOpen = True
Debug.Print EntryTextOpen
End Sub

Private Sub MonthView1_DateDblClick(ByVal DateDblClicked As Date)
If EntryTextOpen = True Then
Text1.Text = ""
Form1.Height = frmHeightUp
End If
EntryTextOpen = False
Debug.Print EntryTextOpen
End Sub


При click пишет EntryTextOpen = True, открывает окно.
При DblClick- EntryTextOpen = False, закрывает, через пол-секунды (зависит от скорости DblClick)
пишет EntryTextOpen = True и снова открывает.
Или я "EntryTextOpen =..." куда-то не туда всунул, или Click и DblClick конкретно пересекаются.

Кстати,
Код: Выделить всё
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
If EntryTextOpen = False Then
EntryTextOpen = True
.......
End If
End Sub

и
Код: Выделить всё
Private Sub MonthView1_DateDblClick(ByVal DateDblClicked As Date)
If EntryTextOpen = True Then
EntryTextOpen = False
........
End If
End Sub

То-есть внутри цикла If........End If ничего не меняет.
Имеющий уши, да услышит.. (с) Новый Завет От Матфея святое благовествование

caa2000
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 14.05.2009 (Чт) 4:50

Re: MonthView DateClick и DateDblClick

Сообщение caa2000 » 03.05.2013 (Пт) 14:26

To: pronto
Спасибо за идею. Вопрос решил.
Вместо MonthView1_DateDblClick использовал Text1_DblClick() (диалог)
или
Код: Выделить всё
Private Sub MonthView1_DblClick()
Text1.Text = ""
Form1.Height = frmHeightUp
End Sub

всё работает.
Имеющий уши, да услышит.. (с) Новый Завет От Матфея святое благовествование

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: MonthView DateClick и DateDblClick

Сообщение pronto » 03.05.2013 (Пт) 15:52

Это хорошо, что ты сам разобрался! Извиняюсь за свою невнимательность — проверял на PictureBox, у которого порядок событий: «Click», «DblClick». А у MontView он оказался: «Click», «DblClick», «Click». Именно последний клик всё портит.
Хотя для меня не совсем понятна логика выбора именно такого поведения диалога (узреть бы его для большей ясности), но и на эту хитрую гайку найдётся болт:
Код: Выделить всё
Private DialogVisible As Boolean, EventNumber As Long

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)

   If DialogVisible = False And EventNumber = 0 Then
      ' показать
      Form1.Height = frmHeightDown
      DialogVisible = True
     
      EventNumber = EventNumber + 1

   ElseIf DialogVisible = False And EventNumber = 1 Then
      ' скрыть
      Form1.Height = frmHeightUp
     
      EventNumber = 0
   End If
   
End Sub

Private Sub MonthView1_DateDblClick(ByVal DateDblClicked As Date)

   If DialogVisible = True Then
      DialogVisible = False
   End If

End Sub
O, sancta simplicitas!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 55

    TopList