Nu får jag hjärnblödning... Jag vet inte riktigt hur du kan undvika enkelklick vid dubbelklick, men att bara få dubbelklick med vänsterknappen kan du nog fixa så här: Thomas, det var en rolig lösning! :)dubbelklick utan dubbelt klick?
Jag har gjort ett litet program som är en sorts timer som kan minimeras till "sys tray".
Dubbelklickar man på ikonen så öppnas programmet igen, mycket fiffigt.
Problemet är att jag vill kunna pausa och återstarta med enkelklick med vänster musknapp, men med en vanlig "MouseDown" funktion är problemet att om jag dubbelklickar så körs enkelklickfunktionen två gånger! kan ju lösas med nån sorts timer, men det blir ju inte bra...
Dessutom är det så att man kan höger-dubbel-klicka också och då triggas ju dubbelklick funktionen, samtidigt som min context-menu visas, vilket känns rätt dumt också... nån som vet om det går att spärra?Sv: dubbelklick utan dubbelt klick?
(det här är skrivet utan VB så det är kanske inte 100%igt korrekt)
<code>
(General)
Dim LeftClick As Boolean
Sub Ikon_MouseDown()
If Button = 1 Then
LeftClick = True
End If
End Sub
Sub Ikon_MouseUp()
LeftClick = False
End Sub
Sub Ikon_DoubleClick()
If LeftClick = True Then
Msgbox "Dubbelklick med vänsterknappen!"
End If
End Sub
</code>
Edit: Ser att det var forumet windows forms... det hör väl till .NET? I så fall kanske inte min kod funkar...
ThomasSv:dubbelklick utan dubbelt klick?
ska prova det!
Edit: Fungerade utmärkt med följande:
(dock inte med MouseUp, den triggas innan dubbelklicket)
<code>
Dim IsLeftKlick As Boolean
Private Sub NotifyIcon1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles NotifyIcon1.MouseDown
If e.Button = MouseButtons.Left Then
IsLeftKlick = False
If Timer1.Enabled = False Then
NotifyIcon1.Icon = New System.Drawing.Icon("IconRun.ico")
Timer1.Enabled = True
Else
NotifyIcon1.Icon = New System.Drawing.Icon("IconPause.ico")
Timer1.Enabled = False
End If
Else
IsLeftKlick = True
End If
End Sub
Private Sub NotifyIcon1_DoubleClick(ByVal sender As Object, ByVal e As EventArgs) Handles NotifyIcon1.DoubleClick
If IsLeftKlick Then
RestoreWindow()
End If
End Sub
</code>
Nu är ju bara frågan. Hur ändrar jag MouseDown så att Timer1.Enabled = False bara händer vid enkelklick och inte vid dubbelklick? :-P