作成日: 2020/01/07 最終更新日: 2020/04/22
文書種別
不具合
状況
修正済み
詳細
特定の条件下において、タブページをフローティングにしてから再度ドッキングしたとき、タブがフォームから消えることがあります。
●発生条件の例(以下のすべてを満たす場合)
・設計時にフォームの右側にC1CommandDockを配置し、その上にC1DockingTabを配置している
・そのC1DockingTabのShowSingleTabプロパティがFalseに設定されている
・そのC1DockingTab上に複数のタブページが配置されており、最後のタブページのTabVisibleプロパティがFalseに設定されている
●上記の条件下で以下の手順で操作すると、現象が発生することがあります。
1. 実行時に先頭のタブページをフロート状態にします。
2. 残りのタブページを順番に先頭のタブページにドッキングします。
3. すべてのタブページが単一のフローティングウィンドウ内にドッキングされている状態で、ウィンドウをメインフォームの右側にドッキングします。
●発生条件の例(以下のすべてを満たす場合)
・設計時にフォームの右側にC1CommandDockを配置し、その上にC1DockingTabを配置している
・そのC1DockingTabのShowSingleTabプロパティがFalseに設定されている
・そのC1DockingTab上に複数のタブページが配置されており、最後のタブページのTabVisibleプロパティがFalseに設定されている
●上記の条件下で以下の手順で操作すると、現象が発生することがあります。
1. 実行時に先頭のタブページをフロート状態にします。
2. 残りのタブページを順番に先頭のタブページにドッキングします。
3. すべてのタブページが単一のフローティングウィンドウ内にドッキングされている状態で、ウィンドウをメインフォームの右側にドッキングします。
回避方法
この問題は2020J v1(4.5.20201.416)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
タブページのドッキング時に発生する親のドッキングタブのControlAddedイベントで、対象となるタブページのTabVisibleを一時的にTrueにします。これにより、ドッキングタブおよびタブページの再描画を促します。
◎サンプルコード(VB)
※修正版を適用しない場合の回避方法は以下の通りです。
タブページのドッキング時に発生する親のドッキングタブのControlAddedイベントで、対象となるタブページのTabVisibleを一時的にTrueにします。これにより、ドッキングタブおよびタブページの再描画を促します。
◎サンプルコード(VB)
Private Sub C1DockingTab1_ControlAdded(ByVal sender As Object, ByVal e As ControlEventArgs)
For Each ctrl As Control In C1DockingTab1.Controls
Dim tabPage As C1DockingTabPage = CType(ctrl, C1DockingTabPage)
If (tabPage IsNot Nothing) Then
Dim tabVisible As Boolean = tabPage.TabVisible
tabPage.TabVisible = True
tabPage.TabVisible = tabVisible
End If
Next
End Sub
◎サンプルコード(C#) private void c1DockingTab1_ControlAdded(object sender, ControlEventArgs e)
{
foreach(Control ctrl in c1DockingTab1.Controls)
{
C1DockingTabPage tabPage = ctrl as C1DockingTabPage;
if (tabPage != null)
{
bool tabVisible = tabPage.TabVisible;
tabPage.TabVisible = true;
tabPage.TabVisible = tabVisible;
}
}
}
旧文書番号
84810