いくつかの異なる画面を持つWindowsモバイルアプリケーションを作成しています。各画面の下部には、ユーザーがクリックして各画面をナビゲートできるメニューバーがあります。
私の質問は、画面ごとに新しいフォームを使用してメニューのクローンを作成するか、1つのフォームを使用して他のすべての画面をコントロールとして使用し、それらをメインフォームに追加するかです。
乾杯
いくつかの異なる画面を持つWindowsモバイルアプリケーションを作成しています。各画面の下部には、ユーザーがクリックして各画面をナビゲートできるメニューバーがあります。
私の質問は、画面ごとに新しいフォームを使用してメニューのクローンを作成するか、1つのフォームを使用して他のすべての画面をコントロールとして使用し、それらをメインフォームに追加するかです。
乾杯
私はコントロールに投票します。
どちらのメカニズムも希望するフローを実現でき、基本的な観点からは、どちらも実際に悪化することはありません (読み込み時間、メモリの消費など)。私は、UserControls に大いに役立つ UI フレームワークを使用しているので、それを使用しています。
一般的に言えば、アプリを作成するとき、ビューを配置するワークスペースを持つ単一の親/ホスト フォームがあります。これらのビューは UserControls です。タブ付きワークスペースまたはデスク ワークスペースのどちらを使用しても、最終的にはコントロールになります。ShowDialog
複数の完全なフォームを使用する唯一の理由は、呼び出しを行うダイアログ (警告、入力など) がある場合です。
このリンクによると、Windows Mobile には MDI 機能がありません。
このアプリケーションでは、画面ごとに異なるフォームを使用しています。
新しいウィンドウを開くには、次の 2 つの方法があります。
formName.ShowDialog()
: 新しい画面は、他の画面の子として開かれます。この場合、子が閉じられるまで親フォームにアクセスできません。
formName.Show()
: 新しい画面は、他の画面の子として開かれません。したがって、子が閉じられていなくても、親にアクセスできます。
各タブに独自のコントロールを持つ単一のフォームで TabControl を使用できます。コントロールを動的に追加する必要はありません。そして、ひとつの形。これを達成する方法については、この回答で詳しく説明しています。