Form.ShowDialog Metoda

Definice

Zobrazí formulář jako modální dialogové okno.

Přetížení

ShowDialog()

Zobrazí formulář jako modální dialogové okno.

ShowDialog(IWin32Window)

Zobrazí formulář jako modální dialogové okno se zadaným vlastníkem.

ShowDialog()

Zobrazí formulář jako modální dialogové okno.

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

Návraty

DialogResult

Jedna z DialogResult hodnot.

Výjimky

Zobrazený formulář je již viditelný.

-nebo- Zobrazený formulář je zakázaný.

-nebo- Zobrazený formulář není okno nejvyšší úrovně.

-nebo- Formulář, který se zobrazuje jako dialogové okno, už je modální formulář.

-nebo- Aktuální proces není spuštěný v interaktivním režimu uživatele (další informace najdete v tématu UserInteractive).

Příklady

Následující příklad zobrazí formulář jako modální dialogové okno a vyhodnotí návratovou hodnotu dialogového okna před určením, zda má být přečtená hodnota TextBox ovládacího prvku ve formuláři dialogového okna. Tento příklad vyžaduje, aby Form byl název testDialog vytvořen a že obsahuje TextBox ovládací prvek s názvem TextBox1. Kromě toho tento příklad vyžaduje, aby byl kód v tomto příkladu obsažen a volán z jiného Form , aby se zobrazilo testDialog jako modální dialogové okno. Příklad používá verzi, která určuje vlastníka dialogového ShowDialog okna.

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

Poznámky

Tuto metodu můžete použít k zobrazení modálního dialogového okna v aplikaci. Pokud je tato metoda volána, kód následující se nespustí až po zavření dialogového okna. Dialogové okno lze přiřadit jednu z hodnot DialogResult výčtu tak, že ji přiřadíte k DialogResult vlastnosti Button formuláře nebo nastavením DialogResult vlastnosti formuláře v kódu. Tato hodnota se pak vrátí touto metodou. Pomocí této návratové hodnoty můžete určit, jak zpracovat akce, ke kterým došlo v dialogovém okně. Pokud se například dialogové okno zavřelo a vrátilo DialogResult.Cancel hodnotu touto metodou, můžete zabránit spuštění kódu za voláním ShowDialog .

Když se formulář zobrazí jako modální dialogové okno, kliknutím na tlačítko Zavřít (tlačítko s X v pravém horním rohu formuláře) způsobí, že formulář bude skrytý a DialogResult vlastnost bude nastavena na DialogResult.Cancel. Na rozdíl od nemodálních formulářů Close není metoda volána rozhraním .NET Framework, když uživatel klikne na tlačítko zavřít formulář dialogového okna nebo nastaví hodnotu DialogResult vlastnosti. Místo toho je formulář skrytý a dá se znovu zobrazit bez vytvoření nové instance dialogového okna. Vzhledem k tomu, že formulář zobrazený jako dialogové okno je místo zavřeného skrytého dialogového okna, je nutné volat Dispose metodu formuláře, pokud formulář už aplikace nepotřebuje.

Tato verze ShowDialog metody nezadává formulář ani ovládací prvek jako jeho vlastník. Při zavolání této verze se aktuálně aktivní okno vytvoří vlastníkem dialogového okna. Pokud chcete zadat konkrétního vlastníka, použijte jinou verzi této metody.

Viz také

Platí pro

ShowDialog(IWin32Window)

Zobrazí formulář jako modální dialogové okno se zadaným vlastníkem.

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

Parametry

owner
IWin32Window

Libovolný objekt, který implementuje IWin32Window , který představuje okno nejvyšší úrovně, které bude vlastnit modální dialogové okno.

Návraty

DialogResult

Jedna z DialogResult hodnot.

Výjimky

Formulář zadaný v parametru owner je stejný jako zobrazený formulář.

Zobrazený formulář je již viditelný.

-nebo- Zobrazený formulář je zakázaný.

-nebo- Zobrazený formulář není okno nejvyšší úrovně.

-nebo- Formulář, který se zobrazuje jako dialogové okno, už je modální formulář.

-nebo- Aktuální proces není spuštěný v interaktivním režimu uživatele (další informace najdete v tématu UserInteractive).

Příklady

Následující příklad zobrazí formulář jako modální dialogové okno a vyhodnotí návratovou hodnotu dialogového okna před určením, zda má být přečtená hodnota TextBox ovládacího prvku ve formuláři dialogového okna. Tento příklad vyžaduje, aby Form byl název Form2 vytvořen a že obsahuje TextBox ovládací prvek s názvem TextBox1. Příklad používá verzi, která určuje vlastníka dialogového ShowDialog okna.

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

Poznámky

Tuto metodu můžete použít k zobrazení modálního dialogového okna v aplikaci. Pokud je tato metoda volána, kód následující se nespustí až po zavření dialogového okna. Dialogové okno lze přiřadit jednu z hodnot DialogResult přiřazením DialogResult Button vlastnosti formuláře ve formuláři nebo nastavením DialogResult vlastnosti formuláře v kódu. Tato hodnota se pak vrátí touto metodou. Pomocí této návratové hodnoty můžete určit, jak zpracovat akce, ke kterým došlo v dialogovém okně. Pokud se například dialogové okno zavřelo a vrátilo DialogResult.Cancel hodnotu touto metodou, můžete zabránit spuštění kódu za voláním ShowDialog .

Když se formulář zobrazí jako modální dialogové okno, kliknutím na tlačítko Zavřít (tlačítko s X v pravém horním rohu formuláře) způsobí, že formulář bude skrytý a DialogResult vlastnost bude nastavena na DialogResult.Cancel. Na rozdíl od bezmodrových formulářů Close není metoda volána rozhraním .NET Framework, když uživatel klikne na tlačítko zavřít formulář dialogového okna nebo nastaví hodnotu DialogResult vlastnosti. Místo toho je formulář skrytý a dá se znovu zobrazit bez vytvoření nové instance dialogového okna. Vzhledem k tomu, že formulář zobrazený jako dialogové okno je místo zavřeného skrytého dialogového okna, je nutné volat Dispose metodu formuláře, pokud formulář už aplikace nepotřebuje.

Tato verze ShowDialog metody umožňuje zadat konkrétní formulář, který bude vlastnit zobrazené dialogové okno.

Viz také

Platí pro