状況:折りたたみ式パネルを作成しています。私のビジネスの状況では、パネルに次のことをサポートしてもらう必要があります。
「方向」(つまり、上、下、左、または右にドッキングします)。これにより、折りたたむ方向やその他のいくつかの方向が変わります。
「スタイル」。この製品には、いくつかの定義済みの視覚スタイルがあります(背景色、グラデーションの有無、テキストの色、ホバーの色などの定義)。
ここに問題があります:特定のスタイルは特定の方向と互換性がありません。要件は次のとおりです。
プログラマーが互換性のないスタイルと方向を持つようにパネルをコーディングした場合、プログラマーを防止/警告する何らかの方法が必要です。たとえば、互換性がない場合にパネルにランタイム例外をスローさせると、この要件が満たされます。
実行時にスタイルまたは方向を動的に変更することを誰にも許可しないでください。必要に応じて、で「動的に」変更できるようにすることはできますが
InitializeComponent
、他の場所では変更できません。パネルはデザインビューに表示される必要があります。ただし、必ずしもデザインビューでドラッグアンドドロップできるとは限りません。技術的には、デザインビューでパネルの属性を変更する必要もありません。可能であれば、私は明らかにそれらの他のもののいずれかが欲しいのですが。
考えられる解決策の1つ:コンストラクターに方向とスタイルの2つの入力を取得させます。そうすれば、両方の変更がアトミックアクションとして扱われます。両方を同時に変更しないと、方向/スタイルを変更してからもう一方を変更するまでの間、パネルは一貫性のない状態になります。それは避けたい。
デザインビューでデフォルトのコンストラクターを使用しないようにするにはどうすればよいですか、および/または要件を満たすためのより良い方法は何ですか?
ノート
パネルは単なる例であり、より広範な質問をするためのユースケースです。この投稿で、デザインビューに要件を処理させるためのベストプラクティスに関する直接的な質問に答えてもらいたいと思います。Visual Studioがデフォルト以外のコンストラクターの挿入をサポートしている場合は、そのInitializeComponent
方法(およびそれに伴う警告)を知りたいと思います。記載されている要件を満たすより良い方法があれば、それも知りたいと思います。