作成日: 2019/02/13 最終更新日: 2019/02/13
文書種別
不具合
状況
回避方法あり
詳細
C1CommandDock上にC1DockingTabを配置し、そのC1DocingTabのMaximumSize、Mininumsizeの各プロパティにてタブの最大サイズ、最小サイズを設定した際、実行時にスプリットバーにてタブのサイズを変更しようとした際の動作が、以前のバージョンと異なります。
2016v1(4.0.20161.147)以前では、指定された最大値・最小値に合わせてスプリットバーの位置が再調整されます。
それ以降のバージョンでは、スプリットバーの位置は再調整されず、スプリットバーを移動した位置までドック領域が広がるあるいは狭まります。これにより、画面端とタブの間に隙間ができたり、タブの一部が画面外にはみ出す場合があります。
2016v1(4.0.20161.147)以前では、指定された最大値・最小値に合わせてスプリットバーの位置が再調整されます。
それ以降のバージョンでは、スプリットバーの位置は再調整されず、スプリットバーを移動した位置までドック領域が広がるあるいは狭まります。これにより、画面端とタブの間に隙間ができたり、タブの一部が画面外にはみ出す場合があります。
回避方法
本現象を回避する方法として、次の2通りが考えられます。
(1)C1CommandDockのMinimumSizeとMaximumSizeを設定する
◎サンプルコード(VB)
◎サンプルコード(C#)
(2)C1DockingManagerのResizeイベントでC1CommandDockのWidthを調整する
◎サンプルコード(VB)
◎サンプルコード(C#)
(1)C1CommandDockのMinimumSizeとMaximumSizeを設定する
◎サンプルコード(VB)
C1CommandDock1.MinimumSize = New Size(100, 0)
C1CommandDock1.MaximumSize = New Size(200, 0)
C1CommandDock1.MaximumSize = New Size(200, 0)
◎サンプルコード(C#)
c1CommandDock1.MinimumSize = new Size(100, 0);
c1CommandDock1.MaximumSize = new Size(200, 0);
c1CommandDock1.MaximumSize = new Size(200, 0);
(2)C1DockingManagerのResizeイベントでC1CommandDockのWidthを調整する
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
C1DockingTab1.MinimumSize = New Size(100, 0)
C1DockingTab1.MaximumSize = New Size(200, 0)
C1DockingManager1.ParentContainer = Me
C1DockingManager1.ResizingMode = C1.Win.C1Command.ResizingMode.Proportional
End Sub
Private Sub C1DockingManager1_Resize(sender As Object, e As C1.Win.C1Command.ResizeEventArgs) Handles C1DockingManager1.Resize
Dim ctrl As C1CommandDock = CType(e.Control, C1CommandDock)
If (Not (ctrl) Is Nothing) Then
If (e.NewSize.Width > C1DockingTab1.MaximumSize.Width) Then
e.Cancel = True
ctrl.Width = C1DockingTab1.MaximumSize.Width
ElseIf (e.NewSize.Width < C1DockingTab1.MinimumSize.Width) Then
e.Cancel = True
ctrl.Width = C1DockingTab1.MinimumSize.Width
End If
End If
End Sub
C1DockingTab1.MinimumSize = New Size(100, 0)
C1DockingTab1.MaximumSize = New Size(200, 0)
C1DockingManager1.ParentContainer = Me
C1DockingManager1.ResizingMode = C1.Win.C1Command.ResizingMode.Proportional
End Sub
Private Sub C1DockingManager1_Resize(sender As Object, e As C1.Win.C1Command.ResizeEventArgs) Handles C1DockingManager1.Resize
Dim ctrl As C1CommandDock = CType(e.Control, C1CommandDock)
If (Not (ctrl) Is Nothing) Then
If (e.NewSize.Width > C1DockingTab1.MaximumSize.Width) Then
e.Cancel = True
ctrl.Width = C1DockingTab1.MaximumSize.Width
ElseIf (e.NewSize.Width < C1DockingTab1.MinimumSize.Width) Then
e.Cancel = True
ctrl.Width = C1DockingTab1.MinimumSize.Width
End If
End If
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
c1DockingTab1.MinimumSize = new Size(100, 0);
c1DockingTab1.MaximumSize = new Size(200, 0);
c1DockingManager1.ParentContainer = this;
c1DockingManager1.ResizingMode = C1.Win.C1Command.ResizingMode.Proportional;
}
private void c1DockingManager1_Resize(object sender, C1.Win.C1Command.ResizeEventArgs e)
{
var ctrl = e.Control as C1CommandDock;
if (ctrl != null)
{
//if (e.NewSize.Width > 200)
if (e.NewSize.Width > c1DockingTab1.MaximumSize.Width)
{
e.Cancel = true;
ctrl.Width = c1DockingTab1.MaximumSize.Width;
}
else if (e.NewSize.Width < c1DockingTab1.MinimumSize.Width)
{
e.Cancel = true;
ctrl.Width = c1DockingTab1.MinimumSize.Width;
}
}
}
{
c1DockingTab1.MinimumSize = new Size(100, 0);
c1DockingTab1.MaximumSize = new Size(200, 0);
c1DockingManager1.ParentContainer = this;
c1DockingManager1.ResizingMode = C1.Win.C1Command.ResizingMode.Proportional;
}
private void c1DockingManager1_Resize(object sender, C1.Win.C1Command.ResizeEventArgs e)
{
var ctrl = e.Control as C1CommandDock;
if (ctrl != null)
{
//if (e.NewSize.Width > 200)
if (e.NewSize.Width > c1DockingTab1.MaximumSize.Width)
{
e.Cancel = true;
ctrl.Width = c1DockingTab1.MaximumSize.Width;
}
else if (e.NewSize.Width < c1DockingTab1.MinimumSize.Width)
{
e.Cancel = true;
ctrl.Width = c1DockingTab1.MinimumSize.Width;
}
}
}
旧文書番号
83631