Condividi tramite


Form.ShowDialog Metodo

Definizione

Visualizza il form come una finestra di dialogo modale.

Overload

ShowDialog()

Visualizza il form come una finestra di dialogo modale.

ShowDialog(IWin32Window)

Visualizza il form come una finestra di dialogo modale avente il proprietario specificato.

ShowDialog()

Visualizza il form come una finestra di dialogo modale.

public:
 System::Windows::Forms::DialogResult ShowDialog();
public System.Windows.Forms.DialogResult ShowDialog ();
member this.ShowDialog : unit -> System.Windows.Forms.DialogResult
Public Function ShowDialog () As DialogResult

Restituisce

DialogResult

Uno dei valori di DialogResult.

Eccezioni

Il form da visualizzare è già visibile.

-oppure- Il form da visualizzare è disabilitato.

-oppure- Il form da visualizzare non è una finestra di primo livello.

-oppure- Il form da visualizzare come finestra di dialogo è già un form modale.

-oppure- Il processo corrente non è in esecuzione in modalità interattiva utente (per ulteriori informazioni, vedere UserInteractive).

Esempio

Nell'esempio seguente viene visualizzato un modulo come finestra di dialogo modale e viene valutato il valore restituito della finestra di dialogo prima di determinare se leggere il valore di un TextBox controllo nella maschera della finestra di dialogo. In questo esempio è necessario che venga creato un Form oggetto denominato testDialog e che contenga un TextBox controllo denominato TextBox1. Inoltre, l'esempio richiede che il codice in questo esempio sia contenuto e chiamato da un'altra Form per visualizzare testDialog come finestra di dialogo modale. Nell'esempio viene utilizzata la versione di che specifica un proprietario per la finestra di ShowDialog dialogo.

void ShowMyDialogBox()
{
   Form2^ testDialog = gcnew Form2;
   
   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if ( testDialog->ShowDialog( this ) == ::DialogResult::OK )
   {
      
      // Read the contents of testDialog's TextBox.
      this->txtResult->Text = testDialog->TextBox1->Text;
   }
   else
   {
      this->txtResult->Text = "Cancelled";
   }

   delete testDialog;
}
public void ShowMyDialogBox()
{
   Form2 testDialog = new Form2();

   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if (testDialog.ShowDialog(this) == DialogResult.OK)
   {
      // Read the contents of testDialog's TextBox.
      this.txtResult.Text = testDialog.TextBox1.Text;
   }
   else
   {
      this.txtResult.Text = "Cancelled";
   }
   testDialog.Dispose();
}
Public Sub ShowMyDialogBox()
    Dim testDialog As New Form2()
    
    ' Show testDialog as a modal dialog and determine if DialogResult = OK.
    If testDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
        ' Read the contents of testDialog's TextBox.
        txtResult.Text = testDialog.TextBox1.Text
    Else
        txtResult.Text = "Cancelled"
    End If
    testDialog.Dispose()
End Sub

Commenti

È possibile usare questo metodo per visualizzare una finestra di dialogo modale nell'applicazione. Quando viene chiamato questo metodo, il codice che segue non viene eseguito fino alla chiusura della finestra di dialogo. La finestra di dialogo può essere assegnata a uno dei valori dell'enumerazione DialogResult assegnandolo alla DialogResult proprietà di un Button oggetto nella maschera o impostando la DialogResult proprietà del form nel codice. Questo valore viene quindi restituito da questo metodo. È possibile utilizzare questo valore restituito per determinare come elaborare le azioni che si sono verificate nella finestra di dialogo. Ad esempio, se la finestra di dialogo è stata chiusa e restituito il DialogResult.Cancel valore tramite questo metodo, è possibile impedire l'esecuzione del codice dopo la chiamata a ShowDialog .

Quando un modulo viene visualizzato come finestra di dialogo modale, facendo clic sul pulsante Chiudi (il pulsante con una X nell'angolo superiore destro del modulo) fa sì che il modulo venga nascosto e la DialogResult proprietà venga impostata su DialogResult.Cancel. A differenza dei moduli non modali, il Close metodo non viene chiamato da .NET Framework quando l'utente fa clic sul pulsante chiudi della maschera di una finestra di dialogo o imposta il valore della DialogResult proprietà. Al contrario, il modulo è nascosto e può essere visualizzato di nuovo senza creare una nuova istanza della finestra di dialogo. Poiché un modulo visualizzato come finestra di dialogo è nascosto anziché chiuso, è necessario chiamare il Dispose metodo del modulo quando il modulo non è più necessario per l'applicazione.

Questa versione del ShowDialog metodo non specifica una maschera o un controllo come proprietario. Quando questa versione viene chiamata, la finestra attualmente attiva viene resa proprietaria della finestra di dialogo. Se si vuole specificare un proprietario specifico, usare l'altra versione di questo metodo.

Vedi anche

Si applica a

ShowDialog(IWin32Window)

Visualizza il form come una finestra di dialogo modale avente il proprietario specificato.

public:
 System::Windows::Forms::DialogResult ShowDialog(System::Windows::Forms::IWin32Window ^ owner);
public System.Windows.Forms.DialogResult ShowDialog (System.Windows.Forms.IWin32Window owner);
public System.Windows.Forms.DialogResult ShowDialog (System.Windows.Forms.IWin32Window? owner);
member this.ShowDialog : System.Windows.Forms.IWin32Window -> System.Windows.Forms.DialogResult
Public Function ShowDialog (owner As IWin32Window) As DialogResult

Parametri

owner
IWin32Window

Qualsiasi oggetto che implementi IWin32Window che rappresenta la finestra di primo livello che sarà proprietaria della finestra di dialogo modale.

Restituisce

DialogResult

Uno dei valori di DialogResult.

Eccezioni

Il form specificato nel parametro owner coincide con il form da visualizzare.

Il form da visualizzare è già visibile.

-oppure- Il form da visualizzare è disabilitato.

-oppure- Il form da visualizzare non è una finestra di primo livello.

-oppure- Il form da visualizzare come finestra di dialogo è già un form modale.

-oppure- Il processo corrente non è in esecuzione in modalità interattiva utente (per ulteriori informazioni, vedere UserInteractive).

Esempio

Nell'esempio seguente viene visualizzato un modulo come finestra di dialogo modale e viene valutato il valore restituito della finestra di dialogo prima di determinare se leggere il valore di un TextBox controllo nella maschera della finestra di dialogo. In questo esempio è necessario che venga creato un Form oggetto denominato Form2 e che contenga un TextBox controllo denominato TextBox1. Nell'esempio viene utilizzata la versione di che specifica un proprietario per la finestra di ShowDialog dialogo.

void ShowMyDialogBox()
{
   Form2^ testDialog = gcnew Form2;
   
   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if ( testDialog->ShowDialog( this ) == ::DialogResult::OK )
   {
      
      // Read the contents of testDialog's TextBox.
      this->txtResult->Text = testDialog->TextBox1->Text;
   }
   else
   {
      this->txtResult->Text = "Cancelled";
   }

   delete testDialog;
}
public void ShowMyDialogBox()
{
   Form2 testDialog = new Form2();

   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if (testDialog.ShowDialog(this) == DialogResult.OK)
   {
      // Read the contents of testDialog's TextBox.
      this.txtResult.Text = testDialog.TextBox1.Text;
   }
   else
   {
      this.txtResult.Text = "Cancelled";
   }
   testDialog.Dispose();
}
Public Sub ShowMyDialogBox()
    Dim testDialog As New Form2()
    
    ' Show testDialog as a modal dialog and determine if DialogResult = OK.
    If testDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
        ' Read the contents of testDialog's TextBox.
        txtResult.Text = testDialog.TextBox1.Text
    Else
        txtResult.Text = "Cancelled"
    End If
    testDialog.Dispose()
End Sub

Commenti

È possibile usare questo metodo per visualizzare una finestra di dialogo modale nell'applicazione. Quando viene chiamato questo metodo, il codice che segue non viene eseguito fino alla chiusura della finestra di dialogo. La finestra di dialogo può essere assegnata a uno dei valori di DialogResult assegnandolo alla DialogResult proprietà di un Button oggetto nella maschera o impostando la DialogResult proprietà del modulo nel codice. Questo valore viene quindi restituito da questo metodo. È possibile utilizzare questo valore restituito per determinare come elaborare le azioni che si sono verificate nella finestra di dialogo. Ad esempio, se la finestra di dialogo è stata chiusa e restituito il DialogResult.Cancel valore tramite questo metodo, è possibile impedire l'esecuzione del codice dopo la chiamata a ShowDialog .

Quando un modulo viene visualizzato come finestra di dialogo modale, facendo clic sul pulsante Chiudi (il pulsante con una X nell'angolo superiore destro del modulo) fa sì che il modulo venga nascosto e la DialogResult proprietà venga impostata su DialogResult.Cancel. A differenza dei moduli in modalitàless, il Close metodo non viene chiamato da .NET Framework quando l'utente fa clic sul pulsante close form di una finestra di dialogo o imposta il valore della DialogResult proprietà. Al contrario, il modulo è nascosto e può essere visualizzato di nuovo senza creare una nuova istanza della finestra di dialogo. Poiché un modulo visualizzato come finestra di dialogo è nascosto anziché chiuso, è necessario chiamare il Dispose metodo del modulo quando il modulo non è più necessario per l'applicazione.

Questa versione del ShowDialog metodo consente di specificare un modulo specifico proprietario della finestra di dialogo visualizzata.

Vedi anche

Si applica a