VisualStudioでWindowsフォームを使用して多肢選択式のテストアプリケーションを作成しています。ユーザーが1つの質問に答えると、[次へ]をクリックして次の質問に進みます。単一のウィンドウフレームを使用してすべての質問を表示できますか?私がそれを複数のウィンドウフォームで行うとき、私はそれをしなければならずthis.Hide()
、次に.Show()
他のフォームをしなければなりませんでした。これを行うのに問題はありませんが、他のウィンドウを非表示にして表示すると、まったく同じ位置で開いていないため、動き続けます。
4 に答える
質問と多肢選択式の回答を表示する UserControl を作成できます。ユーザーが [次へ] ボタンをクリックすると、フォームの Controls コレクションから UserControl を削除し、次の質問の詳細を含むカスタム UserControl の新しいインスタンスを作成してから、新しいインスタンスをフォームの Controls コレクションに追加します。この構造により、単一のフォームでアプリを実行できます。
シンプルであるほど良い。最も簡単な方法は、(1つのウィンドウで)パネルを作成し、そのパネルに質問と回答のすべてのオプションを含むラベルを追加することです。次に、[次へ]ボタンをクリックして、すべてのラベルのテキストを一度に変更します。
画面上の同じ位置で異なるウィンドウを開くという問題がある限り、すべてのフォームのDefaultPositionプロパティをCenterScreenまたはCenterParentに変更します。
複数のフォームのツールボックスからパネルを使用することをお勧めします。多肢選択問題の方が良いでしょう。
次に、すべてのパネルで、ナビゲートするパネルに応じてプロパティ visible を True または false に設定します。
詳細については、これを参照して ください http://www.youtube.com/watch?v=CDOXzz_0gYE&feature=related
ウィザードを使用できます。
ここに 2 つのリンクがあります。
http://www.codeproject.com/Articles/18674/A-Simple-Wizard-Control-for-Net-2-0-with-Full-Desi
このライブラリをツールボックスに追加します。
- ツールボックスを右クリックし、コンテキスト メニューから [タブの追加] を選択します。
- 「Wizard」など、新しく作成したタブの名前を指定します。
- タブをアクティブにして右クリックし、コンテキスト メニューの [アイテムの選択...] を選択します。
- 次に、アセンブリ「WizardBase.dll」があるフォルダーを参照して選択します。