Come posso acquisire le pressioni dei tasti di immissione in qualsiasi punto del modulo e forzarlo ad attivare l'evento del pulsante di invio?
Come posso acquisire le pressioni dei tasti di immissione in qualsiasi punto del modulo e forzarlo ad attivare l'evento del pulsante di invio?
Risposte:
Se si imposta la Form's AcceptButtonproprietà per una delle Buttons sul Form, si otterrà che il comportamento di default.
Altrimenti, imposta la KeyPreviewproprietà truesu Forme gestisci il suo KeyDownevento. È possibile verificare la Enterchiave e intraprendere l'azione necessaria.
È possibile designare un pulsante come "AcceptButton" nelle proprietà del modulo e questo rileverà qualsiasi pressione di tasto "Invio" sul modulo e li instraderà a quel controllo.
Vedere Procedura: designare un pulsante Windows Form come pulsante Accetta utilizzando la finestra di progettazione e notare le poche eccezioni che delinea (caselle di testo su più righe, ecc.)
Come affermato in precedenza, imposta la proprietà AcceptButton del modulo su uno dei suoi pulsanti E imposta la proprietà DialogResult per quel pulsante su DialogResult.OK , in modo che il chiamante sappia se la finestra di dialogo è stata accettata o chiusa.
Puoi iscriverti KeyUpall'evento del TextBox.
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DoSomething();
}
Il Form ha una proprietà KeyPreview che puoi usare per intercettare la pressione del tasto.
Basta usare
this.Form.DefaultButton = MyButton.UniqueID;
** Metti l'ID del tuo pulsante al posto di "MyButton".