方法 : ダイアログ ボックスを閉じて、ユーザー入力を保持する
ダイアログ ボックスを閉じる方法はデザイン時または実行時に設定できます。 デザイン時には、ダイアログ ボックス上のすべての Button コントロールに対して DialogResult プロパティを設定できます。 実行時には、ユーザーの応答を動的に処理できるように DialogResult プロパティを設定できます。
注意
実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「設定の操作」を参照してください。
デザイン時にコントロールに DialogResult プロパティを設定するには
プロパティを設定する Button コントロールをクリックします。
[プロパティ] ウィンドウの DialogResult プロパティをクリックして、使用できるプロパティの設定値の一覧を表示します。
ダイアログ ボックスを閉じた "結果" として適切な動作を選択します。
Button コントロールをクリックする以外のユーザー アクションでダイアログ ボックスを閉じる場合についても、その "結果" の動作を設定できます。 ダイアログ ボックスに、ダイアログ ボックスを閉じるボタンが含まれていない場合は、ダイアログ ボックスを閉じた後に生じるアクションを実行時に設定できます。
プログラムによって、コントロールまたはフォームに DialogResult プロパティを設定するには
DialogResult プロパティを設定するイベント ハンドラーまたはメソッドに移動します。
以下のコード例のようなコードを作成します。
Public Sub InformationProcessed() ' This code will set the DialogResult for a form. Me.DialogResult = DialogResult.Yes ' OR ' This code will set the DialogResult for a button. Button1.DialogResult = DialogResult.No End Sub
private void InformationProcessed() { // This code will set the DialogResult for a form. DialogResult = DialogResult.Yes; // OR // This code will set the DialogResult for a button. button1.DialogResult = DialogResult.No; }
private: void InformationProcessed() { // This code will set the DialogResult for a form. this->DialogResult = DialogResult::Yes; // OR // This code will set the DialogResult for a button. button1->DialogResult = DialogResult::No; }
DialogResult プロパティを設定すると、ダイアログ ボックスは自動的に閉じます。ただし、この場合でも、コントロールの Click イベントを処理して、イベント ハンドラーのコードが終了してからダイアログ ボックスが閉じるように設定できます。 Click イベントを処理する間は、ダイアログ ボックスが閉じないように設定できます。
DialogResult プロパティによってダイアログ ボックスが閉じられないように設定するには
イベント ハンドラー内で、次のコード例のようなコードを作成します。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.DialogResult = DialogResult.None End Sub
private void button1_Click(object sender, System.EventArgs e) { DialogResult = DialogResult.None; }
private: void button1_Click(System::Object ^ sender, System::EventArgs ^ e) { this->DialogResult = DialogResult::None; }
注意
フォームの Closing イベントを使用して、ダイアログ ボックスを閉じるのを中止することもできます。