GcResizeコンポーネントによるリサイズ時、Panel上に配置された子コントロールの位置が不正になる場合がある

文書番号 : 40255     文書種別 : 不具合     登録日 : 2017/04/01     最終更新日 : 2017/11/21
文書を印刷する
対象製品
PlusPak for Windows Forms 8.0J
状況
修正済み
詳細
GcResizeコンポーネントの配置されたフォームを最大化にした後に元のサイズに戻したときに、下記の条件が揃った場合、Panel内に配置された子コントロールの位置が水平方向にずれてしまうことがあります。

  • PanelのAutoScrollプロパティがTrueに設定されている。
  • 子コントロールのフォントサイズがデフォルトから変更されている。
  • フォームのサイズがデフォルトから変更されている。

本現象は、GcApplicationResizeコンポーネント、GcResizePanelコントロールを使用した場合にも発生します。
回避方法
この問題はService Pack 3(v8.0.2017.1121)で修正されました。
不具合を修正した最新のサービスパックは、アップデートページ からダウンロードできます。

Service Pack 3より前のバージョンでは次の方法で回避可能です。

下記サンプルコードのように、GcResize.ControlResizingイベントとForm.ResizeBeginイベントにPanelのAutoScrollプロパティを切り替える処理を追加することで現象を回避することが可能です。

[Visual Basic]
  Private Sub GcResize1_ControlResizing(sender As Object, e As GrapeCity.Win.Components.GcResizeEventArgs) Handles GcResize1.ControlResizing
    '【対応策】[1/2]
    Panel1.AutoScroll = False
  End Sub

  Private Sub Form1_ResizeBegin(sender As Object, e As EventArgs) Handles MyBase.ResizeBegin
    '【対応策】[2/2]
    Panel1.AutoScroll = True
  End Sub


[C#]
private void GcResize1_ControlResizing(object sender, GrapeCity.Win.Components.GcResizeEventArgs e)
{
  //【対応策】[1/2]
  panel1.AutoScroll = false;
}

private void Form1_ResizeBegin(object sender, EventArgs e)
{
  //【対応策】[2/2]
  panel1.AutoScroll = true;
}
キーワード
PPWI20024