0

これができるかどうかはわかりませんが、インストーラーの場合と同様に、プログラムでフォームにあるコントロールを完全に変更できるかどうかを知りたいです。次のボタンをクリックしても、フォームが非表示になったり、次のフォームを閉じたり開いたりすることはありませんが、異なるコントロールのセットがわずかに読み込まれます(少なくとも、そのように表示されます)。

Visual StudioのC#でこれを行うことは可能ですか?または、タブまたは非表示のパネルを使用する必要がありますか?

4

2 に答える 2

1

はい、プログラムでコントロールに対して何でもできます。使用するデザイナは、バックグラウンドでC#コードも生成します。

フォームに新しいコントロールを追加するには、Form.Controls.Add(Control c)メソッドを使用します。ControlButton、、など)から継承する任意のクラスをListBox使用できます。削除するには、のRemove代わりにメソッドを使用しますAdd

于 2012-10-07T10:54:06.590 に答える
1

あなたが探しているのはUserControlだと思います。UserControlは、他のコントロールのコンテナーとして使用できるという点でフォームのようなものです。ここでウォークスルーを見つけることができます。

前述のインストーラーまたは一般的なウィザードの場合、ステップごとに異なるUserControlを設計し、フォームの予約済み領域にそれぞれをロードできます。予約エリアはパネルにすることができます。たとえば、ウィザードのステップ番号をパラメーターとして持つメソッドを呼び出すボタンがあるとします。

UserControl _step1Control = new UcStep1Control;
UserControl _step2Control = new UcStep2Control;
private void SetStep(int stepNumber)
{
    panel1.Controls.Clear();
    switch(stepNumber)
    {
        case 1:
            panel.Controls.Add(_step1Control);
            break;
        case 2:
            panel1.Controls.Add(_step2Control);
            break;
        default:
            break;
      }
}
于 2012-10-07T11:59:04.993 に答える