私は、WinForms を使用して複数ページのアプリケーションを作成しようとしています。複数のパネルを使用することにしました。各パネルは異なるページを表すので、異なるコンテンツを表示する必要がある場合は、パネルを切り替えることができます。
私の問題は、デザイナー ビューでのパネルの積み重ねに関するものです。2 つ以上のフル スクリーン パネルがある場合、それらはすべて互いに積み重ねられ、以前に作成したパネルが表示されません。これに対する解決策はありますか? 表示を変更しても、デザイナー ビューには影響しません。レイヤーを表示/非表示にする Photoshop のようなオプションと考えてください。私は Visual C# 2010 Express を使用しています。
ベストアンサー1
ここにはいくつかのオプションがあります:
Document Outline
ビュー ( )を使用してView --> Other Windows --> Document Outline
、必要なパネルを選択します。パネルを右クリックして、Bring to Front
他のすべてのパネルよりも前面に配置することもできます。- おそらくあなたがやっていることとは関係ないかもしれませんが、
TabControl
デザイン時に視覚的に操作できる の使用を検討してください。これは、ユーザーが表示するパネルを手動で変更できるようにする場合にのみ、合理的な解決策です。 - パネルをカスタム
UserControl
クラスに移動し、個別に作業することを検討してください。これらのパネルのコンテンツとロジックが適切に自己完結的である場合は、コードをより適切に再構築するために、とにかくこれを行うことをお勧めします。
補遺TabControl
:のタブをユーザーから見えなくするハックを使用することもできます。 をTabControl
フォームに配置し、実行時にItemSize
高さを 1 に設定します。これにより、ユーザーが自分でタブを変更することは (ほぼ) 不可能になりますが、デザイナーで表示されるタブを変更することはできます。
myTabControl.ItemSize = new Size(myTabControl.ItemSize.Width, 1);
これをハック理由があります。sTabControl
はこのような使い方を意図したものではありません。一見うまく機能しているように見えますが、他のハックと同様に、いつでも壊れる可能性があるため、最後の手段としてのみ実行してください (後で頭痛の種になっても私を責めないでください...)。要するに、私はしないでくださいこのハックをお勧めしますが、私は可能性としてのみそれを提供しています。