Procedura: chiudere finestre di dialogo e mantenere l'input dell'utente

È possibile impostare il modo in cui una finestra di dialogo viene chiusa in fase di progettazione o di esecuzione. In fase di progettazione, è possibile impostare la proprietà DialogResult per tutti i controlli Button in una finestra di dialogo. In fase di esecuzione, è possibile impostare la proprietà DialogResult in modo che sia possibile gestire dinamicamente le risposte dell'utente.

Nota

È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Gestione delle impostazioni.

Per impostare la proprietà DialogResult per un controllo in fase di progettazione

  1. Fare clic sul controllo Button per il quale si desidera impostare la proprietà.

  2. Nella finestra Proprietà selezionare la proprietà DialogResult e aprire l'elenco delle impostazioni disponibili.

  3. Selezionare il risultato adatto alla finestra di dialogo.

    È possibile impostare il risultato adatto alla finestra di dialogo per operazioni eseguite dall'utente che non siano fare clic su un controllo Button. Se la finestra di dialogo non contiene pulsanti per la chiusura, è possibile impostare il risultato della finestra di dialogo in fase di esecuzione.

Per impostare la proprietà DialogResult per un controllo o per un form a livello di codice

  1. Passare al gestore eventi o al metodo per il quale si desidera impostare la proprietà DialogResult.

  2. Utilizzare codice analogo a quello riportato nell'esempio seguente.

    Public Sub InformationProcessed()
       ' This code will set the DialogResult for a form.
       Me.DialogResult = DialogResult.Yes
       ' OR
       ' This code will set the DialogResult for a button.
       Button1.DialogResult = DialogResult.No
    End Sub
    
    private void InformationProcessed() 
    {
       // This code will set the DialogResult for a form.
       DialogResult = DialogResult.Yes;
       // OR
       // This code will set the DialogResult for a button.
       button1.DialogResult = DialogResult.No;
    }
    
    private:
       void InformationProcessed()
       {
          // This code will set the DialogResult for a form.
          this->DialogResult = DialogResult::Yes;
          // OR
          // This code will set the DialogResult for a button.
          button1->DialogResult = DialogResult::No;
       }
    

    Anche se l'impostazione della proprietà DialogResult causerà la chiusura automatica della finestra di dialogo, è ancora possibile gestire l'evento Click del controllo. In questo caso, la finestra di dialogo verrà chiusa solo dopo il completamento del codice del gestore eventi. Durante la gestione dell'evento Click è possibile interrompere la chiusura della finestra di dialogo.

Per interrompere la chiusura della finestra di dialogo da parte della proprietà DialogResult

  • Nel gestore eventi, utilizzare codice analogo a quello riportato nell'esempio seguente.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
       Me.DialogResult = DialogResult.None
    End Sub
    
    private void button1_Click(object sender, System.EventArgs e) 
    {
       DialogResult = DialogResult.None;
    }
    
    private:
       void button1_Click(System::Object ^ sender,
          System::EventArgs ^ e) 
       {
          this->DialogResult = DialogResult::None;
       }
    

    Nota

    Per interrompere la chiusura di una finestra di dialogo è anche possibile utilizzare l'evento Closing del form.

Vedere anche

Attività

Procedura: creare finestre di dialogo in fase di progettazione

Procedura: recuperare il risultato delle finestre di dialogo

Concetti

Input dell'utente all'interno di finestre di dialogo

Altre risorse

Finestre di dialogo in Windows Form