コントロールのサイズが変更されるたびに AutoScrollMinSize を更新する関数を持つカスタム UserControl があります。このコントロールは、親フォーム内で他のコントロールとともに DockStyle.Fill に設定されます。
私の問題は、コンテナー フォームを最小化または最大化すると、2 つの連続したサイズ変更イベントが送信され、何らかの理由でスクロール バーが消えることです。
フォームの境界線のサイズを変更してフォームのサイズを変更すると、スクロール バーが毎回完全に更新されます。スクロール バーが消えるのは、最小化または最大化したときだけです。
OnResize と OnSizeChanged の両方を個別にまたは一緒に購読しようとしましたが、同じ問題が発生しました。新しい値が現在の値と等しくない場合にのみ AutoScrollMinSize を設定しようとしましたが(同じ値に2回設定する際に不具合があった場合)、まだこの問題があります。
私のコントロール スタイルは次のとおりです。
this.SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.UserPaint |
ControlStyles.ResizeRedraw, true);
this.DoubleBuffered = true;
this.AutoScroll = true;