方法 : ダイアログ ボックスを閉じて、ユーザー入力を保持する
更新 : 2007 年 11 月
ダイアログ ボックスを閉じる方法はデザイン時または実行時に設定できます。デザイン時には、ダイアログ ボックス上のすべての Button コントロールに対して DialogResult プロパティを設定できます。実行時には、ユーザーの応答を動的に処理できるように DialogResult プロパティを設定できます。
メモ : |
---|
使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。 |
デザイン時にコントロールに 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 イベントを使用して、ダイアログ ボックスを閉じるのを中止することもできます。