Ho un modulo con una singola casella di testo. Nessun altro controllo Ogni volta che digito il tasto "Invio" o il tasto "Esc", il modulo funziona come desidero; ma sento l'orribile errore di Windows. Il codice è simile al seguente ...Come arrestare il suono di errore della finestra quando si digita "Invio" o "Esc"
public class EntryForm: Form
{
public EntryForm()
{
}
private void EntryTextBox_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
{
// do some stuff
Hide(); // I've also used DialogResult = DialogResult.OK here
e.Handled = true;
}
else if(e.KeyCode == Keys.Escape)
{
Hide(); // I've also used DialogResult = DialogResult.Cancel here
e.Handled = true;
}
}
}
posso 'incidere' e rendere la fermata del rumore aggiungendo il seguente codice al costruttore del form.
AcceptButton = new Button();
CancelButton = new Button();
Come ho dichiarato, il suono non viene riprodotto, ma penso che sia una cattiva forma; soprattutto dal momento che non ho bisogno di un pulsante sul modulo.
Qualcuno sa perché questo è il comportamento e se c'è un modo più pulito per fermare il suono di errore dal gioco?
Se non si dispone di alcun pulsante, in che modo si ottiene la finestra di dialogo quando si preme enter o esc? Normalmente un modulo con jus un controllo di modifica si limiterà a sedersi quando premi enter o esc. –
@John Knoeller - Il metodo Hide() nasconde il modulo. Puoi anche impostare la proprietà visible su false. Se hai visualizzato il modulo in modo modale, tutto ciò che devi fare è impostare il risultato della finestra di dialogo dal codice e il modulo scomparirà. –