MESCIUS PlusPak for Windows Forms 12.0J
リサイズの設定

GcResize コンポーネントのリサイズの設定方法について、以下に解説します。

リサイズの許可設定
AllowResizeプロパティは、フォームのリサイズに合わせて、子コントロールの位置とサイズを調整するかどうかを設定します。

次のコードでは、フォームのリサイズに合わせて子コントロールの位置とサイズを調整します。
GcResize1.AllowResize = True
gcResize1.AllowResize = true;

  • 子コントロールがリサイズのポリシーを持つ(TextBox の Multiline=True、Label の AutoSize=True、子コントロールの Dock=Fill など)場合、GcResize コンポーネントの設定よりも優先されます。
リサイズ対象の設定
ResizeModeプロパティを使用すると、リサイズ時に調整する対象を指定することができます。
プロパティ 説明
None リサイズの調整を行いません。
Layout レイアウトのみをリサイズします。
LayoutAndFont レイアウトとフォントをリサイズします。

次のコードでは、フォームのリサイズに合わせてコントロールのレイアウトのみをリサイズします。
GcResize1.ResizeMode = GrapeCity.Win.Components.ResizeMode.Layout
gcResize1.ResizeMode = GrapeCity.Win.Components.ResizeMode.Layout;
子コントロールでのリサイズ設定
GcResize コンポーネントをフォームに追加すると、GcResize コンポーネントの AllowResize プロパティと ResizeMode プロパティが子コントロールごとに使用できるようになります。


このプロパティを使用することで、子コントロールごとにリサイズ調整を行うかどうかを設定することができます。
  • GcContainer コントロールや Panel コントロールのようなコンテナの AllowResize プロパティに False が設定されている場合、コンテナとコンテナ内のコントロールはリサイズ調整が行われません。
フォームの初期サイズの設定
InitializeSettings プロパティを使用するとフォームの初期サイズを設定することができます。InitializeSettingsプロパティには、次のプロパティが含まれます。
プロパティ 説明
InitializeMode フォームの初期サイズとして設定されるモードを設定します。
FactorX InitialMode が Factor の場合に有効になります。初期設定の Width と元のフォームの Width との割合である FactorX を設定できます。元のフォームサイズは設計時のサイズです。
FactorY InitialMode が Factor の場合に有効になります。初期設定の Height と元のフォームの Height の割合である FactorY を設定できます。元のフォームサイズは設計時のサイズです。
FillScreenPercentageX InitialMode が FillScreen の場合に有効になります。ワークエリアとなるスクリーンサイズ幅との割合である FillScreenPercentageXを設定できます。
FillScreenPercentageY InitialMode が FillScreen の場合に有効になります。ワークエリアとなるスクリーンサイズの高さとの割合である FillScreenPercentageYを設定できます
Size InitialMode が Size の場合に有効になります。このプロパティに初期設定のフォームのサイズを設定することが可能です。

InitializeSettings.InitializeModeプロパティは、次のいずれかのモードを設定できます。
プロパティ 説明
FillScreen 最大化のように、フォームを画面いっぱいに表示します。
Size フォームの初期設定サイズを設定できます。
Factor 元のフォームサイズのFactorXとFactorYを設定することで、フォームの初期サイズを設定できます。
None 設計時のフォームサイズを使用します。

InitializeModeプロパティをFillScreenに設定しFillScreenPercentageXおよびFillScreenPercentageYプロパティを使用して初期サイズを設定すると、ディスプレイの解像度に依存しない初期サイズの指定が可能になります。
以下の例ではスクリーンの幅、高さに対して50%の割合でフォームの初期サイズを指定しています。

GcResize1.InitializeSettings.InitializeMode = GrapeCity.Win.Components.InitializeMode.FillScreen
GcResize1.InitializeSettings.FillScreenPercentageX = 0.5
GcResize1.InitializeSettings.FillScreenPercentageY = 0.5
            
gcResize1.InitializeSettings.InitializeMode = GrapeCity.Win.Components.InitializeMode.FillScreen;
gcResize1.InitializeSettings.FillScreenPercentageX = 0.5;
gcResize1.InitializeSettings.FillScreenPercentageY = 0.5;
            
最小縮小率の設定
MinimumFactorプロパティを使用すると、フォームのサイズを縮小したときに子コントロールを縮小する比率を設定できます。 MinimumFactor プロパティの既定値には 100% が設定されていますが、この場合にはフォームを元のサイズより小さくしても、子コントロールは縮小されません。MinimumFactor プロパティに 50% を設定した場合には Height および Width プロパティが元のサイズの 50% まで縮小されるので、子コントロールは最小サイズが元のサイズの4分の1になります。



次のコードでは、コントロールの既定のサイズに対して 50% まで縮小を行います。
GcResize1.MinimumFactor = 0.5
gcResize1.MinimumFactor = 0.5;

MinimumFactor プロパティに設定できる値は 10〜100 の範囲になります。
  • MinimumFactor プロパティに 10% 以下の値が設定された場合には 10% が設定されます。
  • MinimumFactor プロパティに 100% 以上の値が設定された場合には 100% が設定されます。
リサイズ後のコントロール追加
リサイズされたフォームに対し、System.Windows.Forms.ControlCollectionのAddメソッドを使用して動的にコントロールを追加する場合は追加処理の前後でBeginAddControlsおよびEndAddControlsメソッドをコールする必要があります。
BeginAddControlsおよびEndAddControlsメソッドを利用せず、 Addメソッドのみを使用して動的にコントロールの追加を行うと、適切な拡縮率がコントロールに適用されません。
以下のサンプルコードでは、動的に追加したボタンコントロールに適切な拡縮率が適用されます。
'コントロール追加前にBeginAddControlsメソッドをコールします。
GcResize1.BeginAddControls()
'ボタンコントロールを生成します。
Dim newButton As New Button()
newButton.Location = New Point(0, 0)
newButton.Size = New Size(100, 30)
newButton.Text = "Added Button"
'フォームにボタンコントロールを追加します。
Me.Controls.Add(newButton)
'コントロール追加後にEndAddControlsメソッドをコールします。
GcResize1.EndAddControls()
            
//コントロール追加前にBeginAddControlsメソッドをコールします。
gcResize1.BeginAddControls();
//ボタンコントロールを生成します。
Button newButton = new Button();
newButton.Location = new Point(0, 0);
newButton.Size = new Size(100, 30);
newButton.Text = "Added Button";
//フォームにボタンコントロールを追加します。
this.Controls.Add(newButton);
//コントロール追加後にEndAddControlsメソッドをコールします。
gcResize1.EndAddControls();
            
下記のような初期サイズのフォームとボタンコントロールを例に、BeginAddControlsおよび EndAddControlsメソッドを使用して動的にコントロールを追加した際の動作について解説します。


フォームのリサイズ後、BeginAddControlsおよび EndAddControlsメソッドを使用して動的にコントロールを追加すると以下のような結果となります。


このとき、BeginAddControlsおよび EndAddControlsメソッドを使用しないと、適切な拡縮率が適用されずコントロールの一部(フォントサイズなど)に意図しない拡大や縮小が発生します。


フルスクリーンモード
FullScreenMode プロパティを使用すると、アプリケーションを画面全体に表示することができます。
FullScreenMode プロパティに FullScreen を設定すると、フォームを画面全体に表示します。また、FullScreenWithTaskBar を設定すると、Windowsタスクバー領域を除いた画面全体に表示します。

次のコードでは、フォームを画面全体に表示します。
GcResize1.FullScreenMode = GrapeCity.Win.Components.FullScreenMode.FullScreen
gcResize1.FullScreenMode = GrapeCity.Win.Components.FullScreenMode.FullScreen;

   
関連トピック

 

 


© MESCIUS inc. All rights reserved.