2011-08-08 9 views
2

ショートバージョン:VB.Net Windowsフォームコントロールは、ツールボックスからフォームにドラッグされることがよくあります。コントロールのコードは、フォームに直接入ります。通常これは素晴らしいことですが、パネルなどのUIコントロール用のコードを別のファイルに書き込んで、メインのフォームクラスにインポートまたは別の方法で組み込むことは可能ですか?vb.netコントロールは別ファイルになります

コンテキスト(a.k.a. longバージョン):左側にナビゲーションボタンの列が変更されていないフォームがあります。フォームの残りの部分は別のパネルに取り込まれ、パネルはそれぞれ独自のコントロールを持っています。左のボタンをクリックすると、これらの異なるパネルが表示されます(「A」をクリックするとパネル「A」が表示され、「B」を押すとパネル「B」などが表示されます)。変わらない。

このデザインをVB.Netでエレガントな方法で実装するのは苦労しています。私が各パネルを別々のフォームにすると、すべてのファイルに不変の左手のメニューを作成するコードを複製する必要があります。これは恐ろしいことです。別のパネルがマスターフォームから左側のメニューを継承するように、継承されたフォームを使用しようとしましたが、これは新しいウィンドウで新しいフォームをスプールすることを意味し、左側のメニューは継承されますが、私がクリックしたのと同じように見えるメニューは、新しいウィンドウではメモリ内の同じオブジェクトではなく、お互いの知識がありません。

私はちょうどあなたが左側をクリックすることに基づいて変化する中央のコンテンツを持つ1つのウィンドウがほしい。これに対する解決策は、パネルがパネルだけで、私が現在行っているようにフォームを分けることではないということです。しかし、すべてのパネルのコードが1つの大規模なマスターファイルになければならないため、これは組織的に面倒です。したがって、私の質問の短い形式(上記参照):どのように別のファイルのパネルをコード化し、メインフォームの折り畳みに持っていくことができますか?

答えて

1

あなたはusercontrolsを使用したいと思うように私に聞こえます。必要な4つのそれぞれのコントロールを作成し、それらをパネルに追加して、どのボタンが押されたかに応じてそれぞれを表示または非表示にします。

+0

はい、ユーザーコントロールが回答でした。それらをうまく実装すると、まったく新しい課題が生まれましたが、この問題に対する正しい解決策です。 – nttaylor

関連する問題