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 コントロールをクリックすると、その Button の DialogResult プロパティに割り当てられた値が、フォームの 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