1

ユーザーコントロールコンポーネントを個別に含む2つのパネル(各パネルに1つ)を持つWinFormsアプリケーションがあります。ただし、両方のパネルが同じサイズで同じ場所にあるため、一番上のパネルはもう一方のパネルの子になります。一方のパネルを非表示にしてから、もう一方のパネルを表示できるようにしたいと思います。

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

しかし、panel1を非表示にすると、2番目のパネルも非表示になります。

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

私はC#プログラミングに慣れていないので、物事をシンプルに保つのが好きです。

4

2 に答える 2

1

これは設計者によくある事故です。2 番目のパネルを最初のパネルの上にドロップすると、最初のパネルの子になります。これを修正するための 2 つの基本的な戦略:

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

  • 2 番目のパネルの左上隅を、最初のパネルの少し左または上に置きます。InitializeComponent() 呼び出しの後に Location プロパティを割り当てることにより、フォームのコンストラクターの適切な場所に配置します。

設計時にうまく機能し、実行時にパネルを簡単に反転できるコントロールについては、この回答を確認してください。

于 2012-01-08T12:21:22.773 に答える
0

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

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

于 2012-01-08T12:09:09.560 に答える