[PPWI11326]GcResizeコンポーネントが配置されたフォームをコードで拡大/縮小すると、レイアウトが崩れることがある

文書番号 : 39293     文書種別 : 制限事項     登録日 : 2016/02/02     最終更新日 : 2016/02/02
文書を印刷する
対象製品
PlusPak for Windows Forms 7.0J
詳細
GcResizeコンポーネントの配置されたフォームを実装によって拡大/縮小すると、Anchorプロパティが”Top, Left”以外に設定されているコントロールの場合レイアウトが崩れてしまいます。

本現象は、PlusPak for Windows Forms 7.0Jの制限事項です。GcApplicationResizeコンポーネント、GcResizePanelコントロールを使用した場合にも発生します。
回避方法
コードの実装を次のように変更することで現象を回避できます。

・サイズ変更の直前と直後にOnResizeBegin/OnResizeEndメソッドを呼び出す
・サイズの設定はHeightとWidthプロパティの使い分けではなくSize構造体を使用して1ステップ内で実装する

[コード例]
Private Sub Form1_MouseWheel(sender As Object, e As MouseEventArgs) Handles Me.MouseWheel
  With Me
    'Ctrl+マウスホイールで拡大縮小
    If Control.ModifierKeys = Keys.Control Then
      If e.Delta > 0 Then
        ' ResizeBeginイベントを発生させる
        .OnResizeBegin(EventArgs.Empty)
        ' Sizeを使って実装(WidthとHeightを別々に設定しない)
        .Size = New Size(.Height * 1.1, .Width * 1.1)
        ' ResizeEndイベントを発生させる
        .OnResizeEnd(EventArgs.Empty)
      ElseIf e.Delta < 0 Then
        .OnResizeBegin(EventArgs.Empty)
        .Size = New Size(.Height * 0.9, .Width * 0.9)
        .OnResizeEnd(EventArgs.Empty)
      End If
    End If
  End With
End Sub