Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Visual Basic 2012] Verificare la pressione di un tasto speciale

    Ciao a tutti... oggi essendo festa mi sto avvantaggiando per questo lavoro e dunque scusate se faccio tante domande


    Ora il problema è questo: invece di fare i controlli su TextBox di KeyPress, key.Up o key.Down, vorrei fare in modo che alla pressione del tasto (cioè al click di un buttom) mi controlli un valore che recupero dal db e controllo se è stato anche premuto il tasto maiuscolo quello di sinitra....

    tipo l'if che ho è questa:
    ho aggiunto all'inizio anche

    Dim tasto As KeyEventArgs


    e poi ho messo

    If ((i <> 1) OrElse ((i = 1) AndAlso (tasto.Modifiers = Keys.Shift))) Then
    ...faccio qualcosa....
    Else
    Errore
    End If

    cioè nel caso che il valore recuperato dal db sia diverso da uno, entra nell'IF
    nel caso è uguale a uno entra nell'IF SOLO SE è stato premuto al momento del click del button il tasto shift


    sapete come si fa??

    Grazie mille
    --- da enryb_89 ---

  2. #2
    Senza scomodare le API, dato che vuoi sapere se è premuto Shift MENTRE premi il Button (quindi a Form attivo) io farei così:

    1) Imposterei la proprietà KeyPreview del Form a True

    2) Dichiarerei una variabile globale Dim ShiftPressed As Boolean

    3) Controllerei l' evento Form_KeyDown

    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e _
    As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown

    If e.KeyValue = Keys.ShiftKey Then
    ShiftPressed = True
    Else
    ShiftPressed = False
    End If

    End Sub

    4) Nell' evento Form1_KeyUp porterei ShiftPressed a False

    5) Nell' evento Button_Click gestirei a piacere la variabile ShiftPressed

    Bye
    ..

  3. #3
    Ciao eziogsv, scusa ma ho trovato una soluzione migliore...


    ancora prima della tua risposta, avevo provato a mettere Form_KeyPress... va ho constatato in fase di debug che non entrava mai l' dentro....



    poi facendo farie ricerche su internet, su microsoft ho trovato questa:
    http://msdn.microsoft.com/it-it/libr...=vs.90%29.aspx

    e dunque ho risolto....


    per chi potrà servirgli in futuro io ho fatto così...
    la mia i è un valore che recupero dal DB.....

    If ((i <> 1) OrElse ((i = 1) AndAlso ((Control.ModifierKeys And Keys.Shift) = Keys.Shift) AndAlso ((Control.ModifierKeys And Keys.Control) = Keys.Control) AndAlso ((Control.ModifierKeys And Keys.Alt) = Keys.Alt))) Then
    ...faccio qualcosa....
    Else
    .... faccio altro-......
    End If



    questo è un esempiio per mettere anche più tasti contemporaneamente.... e, cmq, lo si può perfezionre caso x caso
    --- da enryb_89 ---

  4. #4

    Anche se è da stupidi fare sta domanda....

    Avevo trovato una soluzione al mio problema... e fin qui tutto ok.


    Ora ho messo lo stesso codice in un'altro form... ma non funziona...

    Sapete aiutarmi???


    Mi spiego meglio... la mia ultima soluzione che ho ritrascritto qui... lo copiata paro-paro ma nel form chiamato "frmLoginUtente" funziona, mentre in quello "frmRegistraDipendente" non funziona...



    Grazie mille
    --- da enryb_89 ---

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.