2012-01-08 9 views
1

私は、個別にusercontrolコンポーネント(各パネルに1つ)を含む2つのパネルを持つWinFormsアプリケーションを持っています。どちらのパネルも同じサイズで同じ場所にあるので、一番上のパネルは他のパネルの子になります。私は1枚のパネルを隠すことができるようにしたいし、他のパネルを示しています。オーバーラップパネルの子コンポーネントの防止

this.panel1.visibile = false; 
this.panel2.visibile = true; 

をしかし、私はパネル1を非表示にしたときに、第二パネルも同様に隠されています。

私はpanel2をpanel1の子ではないようにするにはどうすればよいですか?

私はC#プログラミングが初めてであるので、物事を単純に保つのが好きです。

答えて

0

これはデザイナーの共通の事故です。 2番目のパネルを最初のパネルの上にドロップすると、1番目のパネルの子になります。これを修正する2つの基本的な戦略:

  • 表示+他のWindows +ドキュメントの概要。リストの2番目のパネルをクリックし、フォームにドラッグします。プロパティウィンドウにその値を入力することで、Locationプロパティを手動で修正する必要があります。

  • 第2パネルの左上隅を最初のパネルの左端または上端にちょうど少しずらしてください。 InitializeComponent()呼び出しの後にLocationプロパティを割り当てることで、フォームのコンストラクターの適切な場所に配置します。設計時にうまく機能し、あなたが簡単に実行時にパネルを反転することができます制御用

チェックthis answer

+0

ありがとう、initializeComponent()で初期化しました。 –

0

デザイナーは、あるコントロールを別のコントロールにドラッグすると、そのコントロールの子にしたいと仮定しているため、自動的にこれを行います。

通常、これを回避するには、フォーム上の別の場所にコントロールを作成し、プロパティを使用して2つのコントロールのサイズの位置を手動で一致させる必要があります。

関連する問題