Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Ckick и DblClick по отдельности Добавлено: 08.11.08 11:28  

Автор вопроса:  Владимир
У меня такая проблема:нужно чтобы обрабатывались событи Ckick и DblClick по отдельности.Т.е. при двойном щелчке событие клик не наступало.Можно ли это как то реализовать в vb6?

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 08.11.08 12:59
Так уж устроена винда. Сначала клик, потом двойной клик. И вряд ли это можно как-то исправить. Есть способ, но он ОЧЕНЬ кривой=)

Ответить

Номер ответа: 2
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #2
Добавлено: 08.11.08 16:04
Т.е. при двойном щелчке событие клик не наступало.

Событие наступит обязательно, но его можно проигнорировать. Типа так.
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim kl As Boolean
Private Sub Picture1_Click()
Sleep 200
DoEvents
If kl = True Then
MsgBox ";DblClick однако", 0, ""
Else
MsgBox "Click однако", 0, ""
End If
kl = False
End Sub

Private Sub Picture1_DblClick()
kl = True
End Sub

Sleep 200 - у меня время двойного отклика настроенно меньше. Если у тебя больше, то время нужно увеличить.

Ответить

Номер ответа: 3
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #3
Добавлено: 08.11.08 20:52
Боцман, мне кажется или ты sleep не там поставил?)

Ответить

Номер ответа: 4
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #4
Добавлено: 08.11.08 21:49
Наверно кажется. VB в другой операционке лень переходить, ведь и так ясно, что работать будет.

Ответить

Номер ответа: 5
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #5
Добавлено: 09.11.08 10:40
Боцман пишет:
Типа так.

Хм, дае два кривых способа есть =)

Ответить

Номер ответа: 6
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 09.11.08 13:36
Боцман, и правда работает. пару минут фтыкал как это работает)) преколно.

Ответить

Номер ответа: 7
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #7
Добавлено: 09.11.08 14:39
Хм, дае два кривых способа есть =)

Вот еще в копилку, усовершенствованный косяк.
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function GetDoubleClickTime Lib "user32" () As Long
Dim flag As Boolean

Private Sub Form_Click()
Sleep GetDoubleClickTime() + 10
DoEvents
If Not flag Then
Me.Caption = "Был Click"
Else
Me.Caption = "Был DblClick"
End If
flag = False
End Sub

Private Sub Form_DblClick()
flag = True
End Sub

Ответить

Номер ответа: 8
Автор ответа:
 Владимир



Вопросов: 9
Ответов: 9
 Профиль | | #8 Добавлено: 11.11.08 07:34
Благодарю...очень помогли:)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам