2024年1月24日发(作者:)

这三种DialogResult,只要目前的窗体符合要求,DialogResult都可以接受他们的返回值。并不限定只能用到那个方面。

1,Result

如果此属性的 DialogResult 不是设置为 None,并且父窗体是通过 ShowDialog 方法显示的,则不必挂钩任何事件,单击按钮也可关闭父窗体。然后,该窗体的 DialogResult 属性将设置为该按钮被单击时的 DialogResult。

例如,若要创建一个“是/否/取消”对话框,只需添加三个按钮并将其 DialogResult 属性分别设置为 Yes、No 和 Cancel即可。

实例如下:

private void InitializeMyButton()

{

// Create and initialize a Button.

Button button1 = new Button();

// Set the button to return a value of OK when clicked.

Result = ;

// Add the button to the form.

(button1);

}

参看项目E:C#projectsWindowsForms2_ChooseControllerWindowsForms2_ChooseController。

Result

窗体的对话框结果是当窗体显示为模式对话框时从该窗体返回的值。如果窗体显示为对话框,用 DialogResult 枚举中的值设置此属性将设置该窗体的对话框结果值、隐藏模式对话框并将控制返回给调用窗体。此属性通常由窗体上 Button 控件的 DialogResult 属性设置。当用户单击 Button 控件时,分配给 Button 的 DialogResult 属性的值将分配给该窗体的DialogResult 属性。

当窗体显示为模式对话框时,单击“关闭”按钮(窗体右上角带 X 的按钮)会隐藏窗体并将 DialogResult 属性设置为。当用户单击对话框的“关闭”按钮或设置 DialogResult 属性的值时,不会自动调用 Close 方法。而是隐藏该窗体并可重新显示该窗体,而不用创建该对话框的新实例。因为此行为,所以当应用程序不再需要该窗体时,必须调用该窗体的 Dispose 方法。

可以使用此属性确定对话框是如何关闭的,以便正确处理在该对话框中执行的操作。

注意

通过在窗体的 Closing 事件的事件处理程序中设置 DialogResult 属性,可以重写用户单击“关闭”按钮时分配给DialogResult 属性的值。

注意

如果 Form 显示为无模式窗口,则 DialogResult 属性返回的值可能不返回分配给该窗体的值,因为关闭该窗体时将自动释放该窗体的资源。

参考项目:E:C#projectsWindowsForms2

Result

可以在显示对话框的代码中使用 DialogResult 来确定用户是接受 (true) 还是取消 (false) 该对话框。 如果对话框被接受,这表示打开该对话框的代码需要检索用户收集的数据并处理该数据。 但是,如果对话框被取消,这表示调用代码应该停止任何进一步的处理。

默认情况下,当用户执行下列操作之一时,将会取消对话框:

PressesALT+F4.

单击“关闭”按钮。

从系统菜单中选择“关闭”。

在上述所有情况下,DialogResult 均默认为 false。

对话框通常提供一个用于取消对话框的特殊按钮,这是其 IsCancel 属性设置为 true 的按钮。 以这种方式配置的按钮会在它被按下或 Esc 键被按下时自动关闭窗口。 在上述任一种情况下,DialogResult 均保持为 false。

对话框通常还提供一个接受按钮,这是其 IsDefault 属性设置为 true 的按钮。 以这种方式配置的按钮将在自身或 Enter 键被按下时引发其 Click 事件。 但是,它不会自动关闭对话框,也不会将 DialogResult 设置为 true。 您需要手动编写相关代码,通常可以在默认按钮的 Click 事件处理程序中编写。

如果显示对话框,但不接受或取消该对话框,则 DialogResult 是 null。

在对话框关闭后,可以从 ShowDialog 方法返回的值中获取对话框结果,也可以通过检查 DialogResult 属性获取对话框结果。

只有在通过调用其 ShowDialog 方法打开 Window 时,才能设置 DialogResult。

理解待定。