Ridimensionare un form ridotto prima a icona

di il
8 risposte

Ridimensionare un form ridotto prima a icona

Salve, per aprire un form ridotto prima ad icona, con il tasto freccia. ho utilizzato il seguente codice :

Private Sub txtText3_KeYUP(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
If GetAsyncKeyState3(Keys.Up) Then

Me.WindowState = FormWindowState.Normal

End If
End Sub

ma non funziona, dove sbaglio ?

8 Risposte

  • Re: Ridimensionare un form ridotto prima a icona

    Ma è TextBox1 o TextBox3?

    E perché chiami quella funzione ?

    P.S. usa vita CODE per il codice nel forum
  • Re: Ridimensionare un form ridotto prima a icona

    Il codice che hai scritto non può funzionare perché il form minimizzato non riceve gli eventi della tastiera.
    Il valore di un tasto finisce in e.KeyData, GetAsyncKeyState si usa in modo diverso e serve per intercettare la pressione simultanea di più tasti.

    Se scrivi il codice corretto:
    
       Private Sub TextBox3_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox3.KeyUp
            If e.KeyData = Keys.Up Then
                ' codice....
            End If
       End Sub
    
    intercetteresti il tasto freccia solo quando la textbox ha il focus.
    Il controllo lo dovresti mettere nell'evento KeyUp o KeyDown del form, ma dopo aver attivato KeyPreview
    
      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
           Me.KeyPreview = True
      End Sub
    
      Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp
          If e.KeyData = Keys.Up Then
              Me.Text = "Up"
              ' codice....
          End If
      End Sub
    
    Ma anche così non puoi riaprire il form minimizzato, perché in tale stato il form non riceve gli eventi della tastiera.
  • Re: Ridimensionare un form ridotto prima a icona

    Ho pasticciato, avevo fatto un copia e incolla (male) da una sub che avevo dentro il programma. la funzione l'ho usata per intercettare la pressione del tasto freccia. perche' ,non va bene ?.
  • Re: Ridimensionare un form ridotto prima a icona

    Non basta

    If e.KeyCode = Keys.Up Then

    ?
  • Re: Ridimensionare un form ridotto prima a icona

    GetAsyncKeyState si usa in modo diverso e serve per intercettare la pressione simultanea di più tasti.

    ciao Rubik , pero' io con il seguente codice ho intercettato la sola pressione del tasto .BACKSPACE

    Private Sub txtText_KeYUP(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
    If GetAsyncKeyState(Keys.Back) Then ' qui immetto il codice che deve generare l'evento sulla pressione del tasto BACKSPACE
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox4.Text = ""
    End If
    End Sub
  • Re: Ridimensionare un form ridotto prima a icona

    Non basta

    If e.KeyCode = Keys.Up Then

    ?

    appena ho un po' di tempo studiero' meglio la soluzione.
  • Re: Ridimensionare un form ridotto prima a icona

    nightman ha scritto:


    GetAsyncKeyState si usa in modo diverso e serve per intercettare la pressione simultanea di più tasti.

    ciao Rubik , pero' io con il seguente codice ho intercettato la sola pressione del tasto .BACKSPACE

    Private Sub txtText_KeYUP(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
    If GetAsyncKeyState(Keys.Back) Then ' qui immetto il codice che deve generare l'evento sulla pressione del tasto BACKSPACE
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox4.Text = ""
    End If
    End Sub
    GetAsyncKeyState(Keys.Back), in questo caso non ti serve e è una ridondanza inutile, perché il codice del tasto premuto è già disponibile in "e" che contiene tutte le info legate al KeyEventArgs.
    Le istruzioni che restituiscono il codice del tasto premuto sono:
    e.KeyData (il codice cambia se si premono anche Shift, Alt, Ctrl in simultanea)
    e.KeyCode (il codice dei tasti "A" e "a" danno lo stesso risultato)
    e.KeyValue (come sopra)

    Il tuo codice senza chiedere due volte la stessa cosa diventa:
    
    Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
         If e.KeyData = Keys.Back Then ' qui immetto il codice che deve generare l'evento sulla pressione del tasto BACKSPACE
                TextBox1.Text = ""
                TextBox2.Text = ""
                TextBox3.Text = ""
                TextBox4.Text = ""
         End If
    End Sub
    
  • Re: Ridimensionare un form ridotto prima a icona

    Capito .
Devi accedere o registrarti per scrivere nel forum
8 risposte