none
A03: Button via Click oder Enter ausgelöst

    Frage

  • Hallo Forum,

    ich habe einen Button, welcher als "Standard"-Button definiert ist.

    Wie kann ich in "Button_Click" nun ermitteln, ob dieser per Enter oder via Mouse-Click aktiviert wurde?

    Besten Dank vorab!

    Ciao, Alberto


    Ciao, Alberto
    Samstag, 13. November 2010 16:39

Antworten

  • Hi Alberto,

    gar nicht - der Click-Event wird auch ausgelöst, wenn der Button den Fokus hat und Du die Leertaste drückst. Du müsstest Dir also notfalls mit einem Flag behelfen, z.B. in Deinem code-behind:

    Private mfClick As Boolean
    
    Private Sub Command0_Click()
      MsgBox "Per " & IIf(mfClick, "Click", "Tastatur")
      mfClick = False
    End Sub
    
    Private Sub Command0_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
      mfClick = True
    End Sub
    
    


    Cheers,
    Olaf
    http://blogs.intuidev.com
    Samstag, 13. November 2010 18:27
  • Hallo,

    Alberto Luca wrote:

    ich habe einen Button, welcher als "Standard"-Button definiert ist.

    Wie kann ich in "Button_Click" nun ermitteln, ob dieser per Enter oder
    via Mouse-Click aktiviert wurde?

    Ergaenzend zu Olafs Hinweis koenntest du per Button_KeyDown das Zeichen
    ermitteln, das zu dem Zeitpunkt eingegeben worden ist. Das Ereignis wird
    bei Tastatureingaben ausgeloest (auch Enter), aber nicht bei Klick.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Samstag, 13. November 2010 23:21
    Moderator
  • Hallo Alberto
     
    Folgender Code im Modul Deines Formulars sollte das rausfinden können:
     
    Option Compare Database
    Option Explicit
     
    Dim blnBeklickert As Boolean
     
    Private Sub DeinButton_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
      blnBeklickert = True
    End Sub
     
    Private Sub DeinButton_Click()
      If blnBeklickert = True Then
        MsgBox "Schaltfläche beklickert."
      Else
        MsgBox "Schaltfläche sauber."
      End If
      blnBeklickert = False
    End Sub
     
    Gruss
    Henry

    Hallo Forum,

    ich habe einen Button, welcher als "Standard"-Button definiert ist.

    Wie kann ich in "Button_Click" nun ermitteln, ob dieser per Enter oder via Mouse-Click aktiviert wurde?

    Besten Dank vorab!

    Ciao, Alberto


    Ciao, Alberto
    Montag, 15. November 2010 12:42

Alle Antworten

  • Hi Alberto,

    gar nicht - der Click-Event wird auch ausgelöst, wenn der Button den Fokus hat und Du die Leertaste drückst. Du müsstest Dir also notfalls mit einem Flag behelfen, z.B. in Deinem code-behind:

    Private mfClick As Boolean
    
    Private Sub Command0_Click()
      MsgBox "Per " & IIf(mfClick, "Click", "Tastatur")
      mfClick = False
    End Sub
    
    Private Sub Command0_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
      mfClick = True
    End Sub
    
    


    Cheers,
    Olaf
    http://blogs.intuidev.com
    Samstag, 13. November 2010 18:27
  • Hallo,

    Alberto Luca wrote:

    ich habe einen Button, welcher als "Standard"-Button definiert ist.

    Wie kann ich in "Button_Click" nun ermitteln, ob dieser per Enter oder
    via Mouse-Click aktiviert wurde?

    Ergaenzend zu Olafs Hinweis koenntest du per Button_KeyDown das Zeichen
    ermitteln, das zu dem Zeitpunkt eingegeben worden ist. Das Ereignis wird
    bei Tastatureingaben ausgeloest (auch Enter), aber nicht bei Klick.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Samstag, 13. November 2010 23:21
    Moderator
  • Hallo Alberto
     
    Folgender Code im Modul Deines Formulars sollte das rausfinden können:
     
    Option Compare Database
    Option Explicit
     
    Dim blnBeklickert As Boolean
     
    Private Sub DeinButton_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
      blnBeklickert = True
    End Sub
     
    Private Sub DeinButton_Click()
      If blnBeklickert = True Then
        MsgBox "Schaltfläche beklickert."
      Else
        MsgBox "Schaltfläche sauber."
      End If
      blnBeklickert = False
    End Sub
     
    Gruss
    Henry

    Hallo Forum,

    ich habe einen Button, welcher als "Standard"-Button definiert ist.

    Wie kann ich in "Button_Click" nun ermitteln, ob dieser per Enter oder via Mouse-Click aktiviert wurde?

    Besten Dank vorab!

    Ciao, Alberto


    Ciao, Alberto
    Montag, 15. November 2010 12:42