1

新しいUserControlを作成していますが、コンテナーコントロールのサイズがいつ変更されるのか、またいつUserControlの幅がコンテナーの幅に設定されるのかを知りたいのですが。

Alignableプロパティを設定してこれをAlignTopに設定できるかもしれませんが、コンテナーがTabControlの場合は、タブ上でコントロールが移動するため、これは機能しませんでした。

親のサイズ変更でAmbientChangedイベントが発生するとは思わないのですか?

これを検出する方法はありますか?

4

1 に答える 1

2

親のサイズが変化しても周囲の変化はありません。役に立たないのでAlign、フォームまたはタブストリブのサイズ変更コードを使用して、ユーザー コントロールのサイズを変更する必要があります。

別の方法として、ユーザー コントロールを画像ボックスに配置することもできますが、コード内のコンテナーによってサイズを変更する必要があります。

ここにドラゴンがいます!

もう 1 つの、はるかに壊れやすいオプションは、コンテナー コントロールへの参照を取得し、それを でVBControlExtender変数に割り当てることWithEventsです。これにより、イベントに反応してResize(イベントがある場合)、 を呼び出すことができますExtender.Move。閉じるときにこれをクリアするには、親フォームにコードを追加する必要があることに注意してください。そうしないと、循環参照が発生し、フォームが正しくシャットダウンされません。

于 2012-10-10T10:25:34.927 に答える