Form.ShowDialog 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将窗体显示为模式对话框。
重载
ShowDialog() |
将窗体显示为模式对话框。 |
ShowDialog(IWin32Window) |
将窗体显示为具有指定所有者的模式对话框。 |
ShowDialog()
将窗体显示为模式对话框。
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
返回
DialogResult 值之一。
例外
要显示的窗体已经可见。
- 或 -
所显示窗体被禁用。
- 或 -
显示的窗体不是顶级窗口。
- 或 -
显示为对话框的窗体已经是模式窗体。
- 或 -
当前进程不是以用户交互模式运行的(有关更多信息,请参见 UserInteractive)。
示例
以下示例将窗体显示为模式对话框,并在确定是否读取对话框窗体上的控件的值之前计算对话框的 TextBox 返回值。 此示例要求创建一testDialog
个名为 Form 且包含名为 TextBox 的TextBox1
控件。 此外,该示例要求包含此示例中的代码,并从不同的 Form 调用,以便显示为 testDialog
模式对话框。 该示例使用 指定对话框所有者的 的版本 ShowDialog 。
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
注解
可以使用此方法在应用程序中显示模式对话框。 调用此方法时,只有在对话框关闭之后,它后面的代码才会执行。 通过将对话框分配给窗体上的 属性或在代码中设置DialogResult窗体的 属性Button,可以为对话框分配DialogResult枚举DialogResult的值之一。 然后,此方法将返回此值。 可以使用此返回值来确定如何处理对话框中发生的操作。 例如,如果对话框已关闭并通过此方法返回 DialogResult.Cancel
值,则可以阻止调用 ShowDialog 后的代码执行。
当窗体显示为模式对话框时,单击“ 关闭 ”按钮 (窗体右上角带有 X 的按钮) 会导致隐藏窗体,并将 DialogResult 属性设置为 DialogResult.Cancel
。 与非模式窗体不同,当用户单击对话框的Close“关闭窗体”按钮或设置 属性的值时,.NET Framework不会调用 方法DialogResult。 相反,窗体是隐藏的,无需创建新对话框实例即可再次显示。 由于显示为对话框的窗体是隐藏的,而不是关闭的,因此当应用程序不再需要窗体时,必须调用 Dispose 窗体的 方法。
此方法的 ShowDialog 此版本不指定窗体或控件作为其所有者。 调用此版本时,当前活动窗口将成为对话框的所有者。 如果要指定特定所有者,请使用此方法的其他版本。
另请参阅
适用于
ShowDialog(IWin32Window)
将窗体显示为具有指定所有者的模式对话框。
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
参数
- owner
- IWin32Window
任何实现 IWin32Window(表示将拥有模式对话框的顶级窗口)的对象。
返回
DialogResult 值之一。
例外
owner
参数中指定的窗体就是显示的窗体。
要显示的窗体已经可见。
- 或 -
所显示窗体被禁用。
- 或 -
显示的窗体不是顶级窗口。
- 或 -
显示为对话框的窗体已经是模式窗体。
- 或 -
当前进程不是以用户交互模式运行的(有关更多信息,请参见 UserInteractive)。
示例
以下示例将窗体显示为模式对话框,并在确定是否读取对话框窗体上的控件的值之前计算对话框的 TextBox 返回值。 此示例要求创建一Form2
个名为 Form 且包含名为 TextBox 的TextBox1
控件。 该示例使用 指定对话框所有者的 的版本 ShowDialog 。
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
注解
可以使用此方法在应用程序中显示模式对话框。 调用此方法时,只有在对话框关闭之后,它后面的代码才会执行。 通过将对话框分配给窗体上的 属性或在代码中设置DialogResult窗体的 属性Button,可以为其DialogResult分配一个值DialogResult。 然后,此方法将返回此值。 可以使用此返回值来确定如何处理对话框中发生的操作。 例如,如果对话框已关闭并通过此方法返回 DialogResult.Cancel
值,则可以阻止调用 ShowDialog 后的代码执行。
当窗体显示为模式对话框时,单击“ 关闭 ”按钮 (窗体右上角带有 X 的按钮) 会导致隐藏窗体,并将 DialogResult 属性设置为 DialogResult.Cancel
。 与无模式窗体不同,Close当用户单击对话框的“关闭窗体”按钮或设置 属性的值DialogResult时,.NET Framework不会调用 方法。 相反,窗体是隐藏的,无需创建新对话框实例即可再次显示。 由于显示为对话框的窗体是隐藏的,而不是关闭的,因此当应用程序不再需要窗体时,必须调用 Dispose 窗体的 方法。
此方法的 ShowDialog 此版本允许您指定将拥有所显示对话框的特定窗体。