I have some conditionals in my InitializeComponent which affect the layout based on some variables. Unfortunately, it seems like whenever I rebuild my application, this code is reverted back to its previous state. Is this code being regenerated based on the Designer interface? Is there a way to prevent it from doing this?
1 に答える
2
はい、InitializeComponent
完全に IDE で生成されます。それを台無しにしようとさえしないでください。
一部のコントロールを追加/削除する条件付きロジックがある場合は、自動生成された への呼び出しの後InitializeComponent
に、コントロールのコンストラクターでそれを行います。
条件付きのものは、設計時に有効化/無効化された機能に依存することに注意してください (たとえば、他の誰かがあなたのコントロールを使用していて、設計時に設定する予定のコントロールの動作に影響を与えるプロパティを提供した場合)。コンストラクターは、ユーザーがデザイン ビューから選択するまでに既に実行されているため、機能しません。この場合、OnLoad
メソッドをオーバーライドしてそこにロジックを配置します (または、これのバリエーションを実行します。たとえば、Load
イベント自体を処理します。この猫の皮を剥ぐ方法はたくさんあります)。
于 2011-02-07T17:34:01.127 に答える