Domanda

Ho una forma con un pulsante che viene impostato come AcceptButton della forma. Il modulo ha diversi altri controlli. Ora, quando si preme Invio sulla altri controlli il modulo viene chiuso a causa del pulsante di accettazione del modulo. Lo stesso vale per CancelButton. Come faccio a gestire questo. Ho provato entrando nel PREMITASTO KeyDown del modulo e controlli. Nessuno lavora. Qualsiasi lavoro in giro per questo?

Grazie una tonnellata, Datte

È stato utile?

Soluzione

Non esattamente sicuro di come ci si aspetta il modulo alla funzione, ma si poteva fare qualcosa di simile a quanto segue per avere un po 'più di controllo sulle cose:

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == Keys.Enter)
        {
            // do something
        }
        if (keyData == Keys.Escape)
        {
            // do something else
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

Altri suggerimenti

Ecco come funziona la proprietà AcceptButton. Si specifica il pulsante che si fa clic automaticamente ogni volta che si preme <Enter>.

Se non si desidera questo comportamento, non impostarla come AcceptButton. Non c'è altra ragione per farlo.

È possibile rimuovere AcceptButton dalla forma e impostare la proprietà KeyPreview sul modulo che verrà gestisce l'evento KeyDown. Ci si può controllare il tasto Invio e intraprendere le azioni di conseguenza.

Questa è una delle caratteristiche della forma cioè.

se il pulsante non ha una particolare attenzione se si vuole ancora il codice desiderato da eseguire quando l'utente clicca Enter ...

Impostare la proprietà AcceptButton di un modulo per consentire agli utenti di fare clic su un pulsante premendo il conferimento, anche se il pulsante non è attivo.

Saluti.

Prova questo in VB> net

  If CType(Me.ActiveControl, Button).Name = Button1.Name Then

        End If
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top