Form.ShowDialog Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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
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.