作成日: 2016/04/01 最終更新日: 2016/04/01
文書種別
使用方法
詳細
C1SizerLightを貼り付けたフォーム上で、C1SplitContainerのスプリッタバーをドラッグしたのち、フォームのリサイズ(最大化を含む)を行うと、スプリッタバーの下部が消えることがあります。
これは、C1SizerLightを使用した場合のC1SplitContainerにおける想定される動作です。
C1SizerLightはフォーム上に配置されているコントロールを、その子コントロールも含め(コンテナ上に配置された子コントロールとみなして)検出した上で、それらのリサイズ制御を行います。
ただ、中にはC1SplitterPanelのように、パブリックなインスタンスではあるけれども特定のコンテナ(この場合はC1SplitContainer)によってのみリサイズ制御されるべきコントロールも存在します。
この場合、C1SizerLightにはこのことが感知されないため、C1SplitterPanelのリサイズも行ってしまい、ここでC1SplitContainerが管理しているサイズ情報との不整合が生じます。これによりC1SplitterPanelがスプリッタバーをはみ出してリサイズされ、その結果スプリッタバーの下部が消えたように見えます。
なお本現象は、C1SizerLight1.ResizeFonts=Falseの時に発生し、Trueの時には発生しません。
これは、C1SplitContainerのフォントサイズがC1SizerLightによって調整されることにより(これはFontプロパティを介して行われます)、C1SplitContainerの再描画およびレイアウトの再配置が実行されるためです。
本現象を避け、スプリッタバーを正しく描画させるには、C1SizerLightのResizingControlイベントで、C1SizerLightによるリサイズ対象から外すコントロールを個別に指定します。
◎サンプルコード(VB)
◎サンプルコード(C#)
これは、C1SizerLightを使用した場合のC1SplitContainerにおける想定される動作です。
C1SizerLightはフォーム上に配置されているコントロールを、その子コントロールも含め(コンテナ上に配置された子コントロールとみなして)検出した上で、それらのリサイズ制御を行います。
ただ、中にはC1SplitterPanelのように、パブリックなインスタンスではあるけれども特定のコンテナ(この場合はC1SplitContainer)によってのみリサイズ制御されるべきコントロールも存在します。
この場合、C1SizerLightにはこのことが感知されないため、C1SplitterPanelのリサイズも行ってしまい、ここでC1SplitContainerが管理しているサイズ情報との不整合が生じます。これによりC1SplitterPanelがスプリッタバーをはみ出してリサイズされ、その結果スプリッタバーの下部が消えたように見えます。
なお本現象は、C1SizerLight1.ResizeFonts=Falseの時に発生し、Trueの時には発生しません。
これは、C1SplitContainerのフォントサイズがC1SizerLightによって調整されることにより(これはFontプロパティを介して行われます)、C1SplitContainerの再描画およびレイアウトの再配置が実行されるためです。
本現象を避け、スプリッタバーを正しく描画させるには、C1SizerLightのResizingControlイベントで、C1SizerLightによるリサイズ対象から外すコントロールを個別に指定します。
◎サンプルコード(VB)
Private Sub C1SizerLight1_ResizingControl(sender As Object, e As C1.Win.C1Sizer.C1SizerLightEventArgs) Handles C1SizerLight1.ResizingControl If TypeOf e.Control Is C1.Win.C1SplitContainer.C1SplitterPanel Then e.Cancel = True End If End Sub
◎サンプルコード(C#)
private void C1SizerLight1_ResizingControl(object sender, C1.Win.C1Sizer.C1SizerLightEventArgs e)
{
if (e.Control is C1.Win.C1SplitContainer.C1SplitterPanel)
{
e.Cancel = true;
}
}
旧文書番号
81607