Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [VB.net] Bloccare combinazione tasti

    Salve, volevo sapere se c'era un modo per bloccare la pressione di alcuni tasti.
    Come alt + f4. Un mio amico mi ha consigliato questo codice:

    codice:
    Private Sub form1_Keydown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    e.Handled = True 
    End Sub
    Se lo trapianto in un nuovo form funziona, se lo aggiungo al mio form non va per nulla.
    Sapete se sbaglio in qualche cosa?
    Grazie in anticipo per la vostra disponibilità.

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Bà, dipende da qual'è il codice del tuo form...
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Cioè?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da giacomo1991
    Cioè?
    Posta la parte di codice rilevante su cui riscontri il problema (quello del tuo Form), così possiamo analizzarlo e capire cosa non va.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    E' quello il codice che non funziona. Mi spiego meglio:
    se quel codice lo aggiungo a un form creato da nuovo progetto, funziona; nel senso che se premo alt+f4 il form non si chiude. Se invece lo incollo in un form già fatto, in cui non ci sono delle semplice textbox che prendono dei dati, non funziona.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da giacomo1991
    E' quello il codice che non funziona.
    Ripeto: riporta quel codice che non funziona così controlliamo cosa non va.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    codice:
    Private Sub deathscreen_Keydown(ByVal sender As Object, ByVal e As system.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    e.Handled = True
    End Sub
    Private Sub deathscreen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Timer1.Start()
            ControlBox = False
            'Me.FormBorderStyle = 0
            ProgressBar1.Minimum = 0
            ProgressBar1.Maximum = 10
        End Sub
     Private Sub Sblocca_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Sblocca.Click
            Dim password As String
            Dim password2 As String
            password2 = TextBox1.Text
            Dim sws As New IO.StreamReader("C:\ProgramData\allblocked\password.txt")
            password = sws.ReadLine()
            sws.Close()
            If Not password.Equals(password2) Then
                Dim errore As Integer
                errore = MsgBox("Non hai insetiro una password corretta", , "Errore invio al comando")
            Else
                System.IO.File.Delete("C:\ProgramData\allblocked\password.txt")
                ProgressBar1.Value = 10
                main.Show()
                Me.Close()
            End If
        End Sub
    Private Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.Click
        End Sub
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
            If TextBox1.Text = "" Then
                ProgressBar1.Style = ProgressBarStyle.Marquee
            Else
                ProgressBar1.Style = ProgressBarStyle.Continuous
                ProgressBar1.Value = 10
            End If
        End Sub
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Try
                Dim pProcess() As Process = System.Diagnostics.Process.GetProcessesByName("taskmgr")
                For Each p As Process In pProcess
                    p.Kill()
                Next
            Catch ex As Exception
                Exit Try
            End Try
        End Sub
    End Class

  8. #8
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Probabilmente il fatto che premendo Alt+F4 su un form con altri controlli, potrebbe essere che il Focus non sia sul form ma su uno dei suoi controlli. Mi spiego meglio: se sul tuo form hai una textbox e la selezioni e poi premi Alt+F4, visto che non viene scatenato l'evento Key_Down della form ma bensì quello della TextBox il codice e.Handled = True non viene eseguito. Per risolvere con questo metodo, l'unica che mi viene in mente è quello di fare un gestore globale per l'evento Key_Down.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  9. #9
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123
    Ciao, oppure imposta la proprietà, del form, KeyPreview=True

  10. #10
    Hai ragione, effettivamente è come hai detto tu. Grazie per avermi risposto e aiutato.
    Ho messo una semplice label e quando ci clicco sopra sovrappone un form su cui posso operare comodamente.
    Ti sono grato dell'aiuto.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.