質問

java swingでは、パネルなどにパネルを挿入できます。アプリケーションのすべてのビューにまったく新しいウィンドウを作成したり、コントロールの削除や追加に煩わされたりする必要はありません。

パネルがC#にありますが、「パネルフォーム」または基本的にはパネルとそのコンテンツであるフォームデザイナーのフォームを作成する方法はありません。

どのようにこれを行い、java swingで行ったように動作しますか?

役に立ちましたか?

解決

通常、親ウィンドウでIsMdiContainerプロパティをtrueに設定して、互いに異なるフォームをドッキングするだけです。次に、次の関数を使用してドッキングするサブフォームを作成します。

static class FormUtil
{
    static public void showForm(Form sender, Control reciever)
    {
        sender.ControlBox = false;
        sender.FormBorderStyle = FormBorderStyle.None;
        sender.ShowInTaskbar = false;
        sender.TopLevel = false;
        sender.Visible = true;
        sender.Dock = DockStyle.Fill;

        reciever.Controls.Clear(); //clear panel first
        reciever.Controls.Add(sender);
    }

}

その後、親フォームのパネル内にフォームをドッキングする必要があるときはいつでも、次のようにします。

FormUtil.showForm(new SomeForm(), this.splitContainer1.Panel1);

これにより、フォーム作成の一部を異なるデザイナーに委任できます。私にとって魅力のように機能します。もっと良い方法があるかどうか聞いてみたいです。

他のヒント

実際には、パネルコントロールを使用して、そのDockプロパティをFillに設定できます。そうすれば、パネルはフォームのキャンバス全体になります。その後、必要に応じて、コードビハインドまたはフォームデザイナを使用して子パネルを追加できます。

基本的にデザイナーサーフェイスのようなパネルを提供するユーザーコントロールの概念があり、アトミックフォーム(再利用可能)を作成し、継承可能として登録できることは言うまでもありません。 / p>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top