2012-03-23 25 views
1

コントロールのサイズを変更するたびにAutoScrollMinSizeを更新するカスタムのUserControlがあります。このコントロールはDockStyleに設定されています。フォームのAutoScrollMinSizeグリッチ最小化/最大化

私の問題は、コンテナフォームを最小化または最大化すると、2つの連続したサイズ変更イベントが送信され、何らかの理由でスクロールバーが消えることです。

フォームの枠線のサイズを変更してフォームのサイズを変更すると、毎回スクロールバーが完全に更新されます。スクロールバーが消えるのを最小限に抑えるか、最大化するときだけです。

私はOnResizeとOnSizeChangedの両方を個別にまたは一緒に購読しようとしましたが、同じ問題があります。私はAutoScrollMinSizeを設定しようとしましたが、新しい値が現在の値と等しくない場合(同じ値に2回設定した場合に問題があります)、まだこの問題があります。

this.SetStyle(ControlStyles.DoubleBuffer | 
       ControlStyles.AllPaintingInWmPaint | 
       ControlStyles.UserPaint | 
       ControlStyles.ResizeRedraw, true); 

this.DoubleBuffered = true; 
this.AutoScroll = true; 

答えて

0

完璧なソリューションではありませんが、私はPerformLayout()を呼び出すと、私はAutoScrollMinSizeを表示するには、スクロールバーを強制的に設定した後ことが判明し、次のように

私のコントロールスタイルがあります。

AutoScrollMinSize = newSize; 
PerformLayout(); 
Invalidate(); 
関連する問題