WinFormsコントロール-完全に初期化された後のアクション
-
03-07-2019 - |
質問
WinFormsコントロールに、コンテナーがコントロールを初期化した後(または親が含まれているすべてのコントロールを初期化した後)、ハンドラーを追加したいです。
理由:カスタムコントロールには、アクションを自動的にトリガーするオプションがあります。このオプションが最初に有効になったときにもトリガーする必要があります。
ただし、現時点では、他のプロパティ(イベントハンドラーなど)はまだ正しく接続されていないため、効果は期待どおりではありません。
これは可能ですか?
[編集]
これは「ちょっと変わった」ように聞こえるので、明確にしたい:
このコンポーネントを対象としています。 「新しいドキュメントを自動的に作成する」。
初期化中に、または初期化中にプロパティが割り当てられたときに、DocumentInfo自体を作成できます。ただし、この時点で、UIを更新する必要があることを通知するイベント(通常は親フォーム)も起動する必要があります。イベントがまだ接続されていないか、他のコントロールがまだ初期化されていない可能性があるため、親フォームが完全に初期化されるまでイベントを遅らせたいのです。
解決
私が知っている唯一のことは、コントロール内から直接これを行うことです。OnVisibleChangedをオーバーライドし、コントロールが初めて表示されたときにアクションを処理する必要があります。
しかし、私はこれの必要性を再考します。これにより、コントロールが標準のWindowsフォームコントロールとは異なる動作をするようになります。非標準のイベントにあなたの行動をフックしようとすることは、私にとってメンテナンスと使いやすさの悪夢のように思えます...
他のヒント
フォームのLoadイベントに接続して、そこで作業を行ったことがありますか? (フォームを表示するたびに起動します...)