0

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?

4

1 に答える 1

2

はい、InitializeComponent完全に IDE で生成されます。それを台無しにしようとさえしないでください。

一部のコントロールを追加/削除する条件付きロジックがある場合は、自動生成された への呼び出しのInitializeComponentに、コントロールのコンストラクターでそれを行います。

条件付きのものは、設計時に有効化/無効化された機能に依存することに注意してください (たとえば、他の誰かがあなたのコントロールを使用していて、設計時に設定する予定のコントロールの動作に影響を与えるプロパティを提供した場合)。コンストラクターは、ユーザーがデザイン ビューから選択するまでに既に実行されているため、機能しません。この場合、OnLoadメソッドをオーバーライドしてそこにロジックを配置します (または、これのバリエーションを実行します。たとえば、Loadイベント自体を処理します。この猫の皮を剥ぐ方法はたくさんあります)。

于 2011-02-07T17:34:01.127 に答える