次の方法で共有


Form.DialogResult プロパティ

フォームのダイアログ結果を取得または設定します。

Public Property DialogResult As DialogResult
[C#]
public DialogResult DialogResult {get; set;}
[C++]
public: __property DialogResult get_DialogResult();public: __property void set_DialogResult(DialogResult);
[JScript]
public function get DialogResult() : DialogResult;public function set DialogResult(DialogResult);

プロパティ値

フォームがダイアログ ボックスとして使用された場合の結果を表す DialogResult

例外

例外の種類 条件
InvalidEnumArgumentException 指定された値が有効値の範囲内にありません。

解説

フォームのダイアログ結果とは、フォームがモーダル ダイアログとして表示された場合に、そのフォームから返される値のことです。フォームがダイアログ ボックスとして表示される場合、このプロパティに DialogResult 列挙体からの値を設定すると、フォームのダイアログ結果の値が設定され、モーダル ダイアログが非表示になり、制御が呼び出し側のフォームに戻ります。このプロパティは、通常、フォーム上の Button コントロールの DialogResult プロパティによって設定されます。ユーザーが Button コントロールをクリックすると、その ButtonDialogResult プロパティに割り当てられた値が、フォームの DialogResult プロパティに割り当てられます。

フォームがモーダル ダイアログ ボックスとして表示されている場合、閉じるボタン (フォームの右上隅にある X が付いているボタン) をクリックすると、そのフォームは非表示になり、 DialogResult プロパティが DialogResult.Cancel に設定されます。ユーザーがダイアログ ボックスの閉じるボタンをクリックした場合や、 DialogResult プロパティの値が設定された場合は、 Close メソッドが自動的に呼び出されることはありません。その場合はフォームが非表示になるだけで、ダイアログ ボックスの新しいインスタンスを作成しなくてもそのフォームを再表示できます。このため、フォームがアプリケーションで不要となった場合は、そのフォームの Dispose メソッドを呼び出す必要があります。

このプロパティを使用すると、ダイアログ ボックスで実行されるアクションを適切に処理するために、ダイアログ ボックスが閉じられる方法を決定できます。

メモ   ユーザーが閉じるボタンをクリックしたときに DialogResult プロパティに割り当てられる値をオーバーライドするには、フォームの Closing イベントのイベント ハンドラで DialogResult プロパティを設定します。

メモ    Form がモードレス ウィンドウとして表示される場合は、フォームが閉じるときにそのフォームのリソースが自動的に解放されるため、 DialogResult プロパティからの戻り値が、フォームに割り当てられている値を返すことはありません。

使用例

[Visual Basic, C#, C++] フォームをダイアログ ボックスとして表示し、フォームの DialogResult プロパティを参照することにより、フォームの OK ボタンと Cancel ボタンのどちらがクリックされたかをメッセージ ボックスに表示する例を次に示します。

 
Public Sub CreateMyForm()
    ' Create a new instance of the form.
    Dim form1 As New Form()
    ' Create two buttons to use as the accept and cancel buttons.
    Dim button1 As New Button()
    Dim button2 As New Button()
    
    ' Set the text of button1 to "OK".
    button1.Text = "OK"
    ' Set the position of the button on the form.
    button1.Location = New Point(10, 10)
    ' Set the text of button2 to "Cancel".
    button2.Text = "Cancel"
    ' Set the position of the button based on the location of button1.
    button2.Location = New Point(button1.Left, button1.Height + button1.Top + 10)
    ' Make button1's dialog result OK.
    button1.DialogResult = DialogResult.OK
    ' Make button2's dialog result Cancel.
    button2.DialogResult = DialogResult.Cancel
    ' Set the caption bar text of the form.   
    form1.Text = "My Dialog Box"
    
    ' Define the border style of the form to a dialog box.
    form1.FormBorderStyle = FormBorderStyle.FixedDialog
    ' Set the accept button of the form to button1.
    form1.AcceptButton = button1
    ' Set the cancel button of the form to button2.
    form1.CancelButton = button2
    ' Set the start position of the form to the center of the screen.
    form1.StartPosition = FormStartPosition.CenterScreen
    
    ' Add button1 to the form.
    form1.Controls.Add(button1)
    ' Add button2 to the form.
    form1.Controls.Add(button2)
    
    ' Display the form as a modal dialog box.
    form1.ShowDialog()
    
    ' Determine if the OK button was clicked on the dialog box.
    If form1.DialogResult = DialogResult.OK Then
        ' Display a message box indicating that the OK button was clicked.
        MessageBox.Show("The OK button on the form was clicked.")
        ' Optional: Call the Dispose method when you are finished with the dialog box.
        form1.Dispose
    ' Display a message box indicating that the Cancel button was clicked.
    Else
        MessageBox.Show("The Cancel button on the form was clicked.")
        ' Optional: Call the Dispose method when you are finished with the dialog box.
        form1.Dispose
    End If
End Sub 'CreateMyForm 

[C#] 
public void CreateMyForm()
 {
    // Create a new instance of the form.
    Form form1 = new Form();
    // Create two buttons to use as the accept and cancel buttons.
    Button button1 = new Button ();
    Button button2 = new Button ();
   
    // Set the text of button1 to "OK".
    button1.Text = "OK";
    // Set the position of the button on the form.
    button1.Location = new Point (10, 10);
    // Set the text of button2 to "Cancel".
    button2.Text = "Cancel";
    // Set the position of the button based on the location of button1.
    button2.Location 
       = new Point (button1.Left, button1.Height + button1.Top + 10);
    // Make button1's dialog result OK.
    button1.DialogResult = DialogResult.OK;
    // Make button2's dialog result Cancel.
    button2.DialogResult = DialogResult.Cancel;
    // Set the caption bar text of the form.   
    form1.Text = "My Dialog Box";
 
    // Define the border style of the form to a dialog box.
    form1.FormBorderStyle = FormBorderStyle.FixedDialog;
    // Set the accept button of the form to button1.
    form1.AcceptButton = button1;
    // Set the cancel button of the form to button2.
    form1.CancelButton = button2;
    // Set the start position of the form to the center of the screen.
    form1.StartPosition = FormStartPosition.CenterScreen;
    
    // Add button1 to the form.
    form1.Controls.Add(button1);
    // Add button2 to the form.
    form1.Controls.Add(button2);
    
    // Display the form as a modal dialog box.
    form1.ShowDialog();
 
    // Determine if the OK button was clicked on the dialog box.
    if (form1.DialogResult == DialogResult.OK)
    {
       // Display a message box indicating that the OK button was clicked.
       MessageBox.Show("The OK button on the form was clicked.");
       // Optional: Call the Dispose method when you are finished with the dialog box.
       form1.Dispose();
    }
    else
    {
       // Display a message box indicating that the Cancel button was clicked.
       MessageBox.Show("The Cancel button on the form was clicked.");
       // Optional: Call the Dispose method when you are finished with the dialog box.
       form1.Dispose();
    }
 }
    

[C++] 
public:
void CreateMyForm()
 {
    // Create a new instance of the form.
    Form* form1 = new Form();
    // Create two buttons to use as the accept and cancel buttons.
    Button* button1 = new Button ();
    Button* button2 = new Button ();
   
    // Set the text of button1 to "OK".
    button1->Text = S"OK";
    // Set the position of the button on the form.
    button1->Location = Point (10, 10);
    // Set the text of button2 to "Cancel".
    button2->Text = S"Cancel";
    // Set the position of the button based on the location of button1.
    button2->Location 
       = Point (button1->Left, button1->Height + button1->Top + 10);
    // Make button1's dialog result OK.
    button1->DialogResult = DialogResult::OK;
    // Make button2's dialog result Cancel.
    button2->DialogResult = DialogResult::Cancel;
    // Set the caption bar text of the form.   
    form1->Text = S"My Dialog Box";
 
    // Define the border style of the form to a dialog box.
    form1->FormBorderStyle = FormBorderStyle::FixedDialog;
    // Set the accept button of the form to button1.
    form1->AcceptButton = button1;
    // Set the cancel button of the form to button2.
    form1->CancelButton = button2;
    // Set the start position of the form to the center of the screen.
    form1->StartPosition = FormStartPosition::CenterScreen;
    
    // Add button1 to the form.
    form1->Controls->Add(button1);
    // Add button2 to the form.
    form1->Controls->Add(button2);
    
    // Display the form as a modal dialog box.
    form1->ShowDialog();
 
    // Determine if the OK button was clicked on the dialog box.
    if (form1->DialogResult == DialogResult::OK)
    {
       // Display a message box indicating that the OK button was clicked.
       MessageBox::Show(S"The OK button on the form was clicked.");
       // Optional: Call the Dispose method when you are finished with the dialog box.
       form1->Dispose();
    }
    else
    {
       // Display a message box indicating that the Cancel button was clicked.
       MessageBox::Show(S"The Cancel button on the form was clicked.");
       // Optional: Call the Dispose method when you are finished with the dialog box.
       form1->Dispose();
    }
 }
    

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

Form クラス | Form メンバ | System.Windows.Forms 名前空間 | DialogResult | DialogResult