この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

方法 : Windows フォームをモーダルおよびモードレスで表示する

フォームおよびダイアログ ボックスは、モーダルまたはモードレスのいずれかで表示されます。 "モーダル" なフォームまたはダイアログ ボックスは、アプリケーションの他の作業に移行する前に、終了する (非表示にする) 必要があります。 ダイアログ ボックスの使用の詳細については、「ダイアログ ボックスへのユーザー入力」を参照してください。

重要なメッセージを表示するダイアログ ボックスは、常にモーダルで表示する必要があります。 Visual Studio の [バージョン情報] ダイアログ ボックスは、モーダル ダイアログ ボックスの一例です。 MessageBox は使用できるモーダル フォームです。

"モードレス" なフォームの場合は、開いているフォームを閉じなくても、他のフォームとの間で自由にフォーカスを移動できます。 ユーザーは、フォームを表示したまま、任意のアプリケーションで作業を継続できます。

モードレスなフォームは、ユーザーが任意の順番でアクセスできるため、プログラミングが複雑になります。 ユーザーの操作内容にかかわらず、アプリケーションの状態が一定に保たれる必要があります。 通常、ツール ウィンドウは、モードレスで表示されます。 Visual Studio の [編集] メニューからアクセスできる [検索] ダイアログ ボックスは、モードレス ダイアログ ボックスの一例です。 頻繁に使用するコマンドや情報を表示する場合は、モードレスなフォームを使用します。

メモ メモ

実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「Visual Studio の設定」を参照してください。

モーダル ダイアログ ボックスとしてフォームを表示するには

  • ShowDialog メソッドを呼び出します。

    ダイアログ ボックスをモーダルで表示する方法を次のコード例に示します。

    //Display frmAbout as a modal dialog
    Form frmAbout = new Form();
    frmAbout.ShowDialog();
    
    

    ShowDialog メソッドには、フォームの親子関係を指定する owner というオプションの引数があります。 たとえば、メイン フォームのコードを使用してダイアログ ボックスを開く場合、ダイアログ ボックスのオーナーとして Me (Visual Basic の場合) または this (Visual C# の場合) を渡すと、メイン フォームをオーナーに設定できます。コード例は次のとおりです。

    private void mnuAbout_Click(object sender, System.EventArgs e)
    {
       Form f = new Form();
       f.ShowDialog(this);
    }
    
    

モードレス ダイアログ ボックスとしてフォームを表示するには

  • Show メソッドを呼び出します。

    [バージョン情報] ダイアログ ボックスをモードレスで表示する方法の例は、次のとおりです。

    //Display f as a modeless dialog
    Form f= new Form();
    f.Show();
    
    
    メモメモ

    フォームがモーダルで表示されている場合、ダイアログ ボックスを閉じるまで、ShowDialog メソッド以降のコードは実行されません。 一方、フォームがモードレスで表示されている場合は、フォームが表示されるとすぐに Show メソッド以降のコードが実行されます。

表示: