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
Fare clic sul controllo Button per il quale si desidera impostare la proprietà.
Nella finestra Proprietà selezionare la proprietà DialogResult e aprire l'elenco delle impostazioni disponibili.
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
Passare al gestore eventi o al metodo per il quale si desidera impostare la proprietà DialogResult.
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