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

    [c#] eventi tastiera

    sono sempre impegnato nella realizzazione della mia prima applicazione, una calcolatrice.

    vorrei capire come fare a legare il metodo che mi scrive il numero 1 sulla textbox anche alla pressione del tasto 1 sulla tastiera.

    e poi ho notato che nella calcolatrice di win non posso scrivere direttamente nel textbox, a proposito come si fa?

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    I got the remedy

  3. #3
    ok, ho aggiunto questo


    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.D1)
    {
    MessageBox.Show("è stato premuto il tasto 1");
    }
    }


    ma non mi viene rilevato, naturalmente manca qualcosa, come metto il textbox in ascolto?

  4. #4
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    anche la textbox ha l'evento keydown !!
    in realtà, devi catturare questo evento in tutti i componenti della tua form perchè ogni componente ha questo evento e tu non sai quale componente ha il focus.
    mi spiego meglio con un esempio:
    tu hai premuto il bottone 1(che è quello del numero 1 e quindi ti fa vedere nella textbox 1), in questo momento il focus è sul bottone 1 però tu vuoi che in questo momento premendo il tasto 2 sulla tastiera nella textbox visualizzi il 2 e quindi in questo caso anche il bottone del 1 deve gestire questo evento.
    I got the remedy

  5. #5
    credo di aver capito, comunque mi faresti un esempio veloce di codice?

  6. #6
    ops, sul form mi ero dimenticato di mettere true il KeyPreview.

    adesso con questo codice ottego effettivamente ciò che mi serviva senza intervenire sul focus


    public void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {

    if (e.KeyCode == Keys.D1)
    {
    MessageBox.Show("hai premuto 1.");
    }
    }




    public void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {

    }

    l'unico inconveniente è che se mi posiziono sul textbox e premo 1 me lo scrive 2 volte. :berto:

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.