作成日: 2020/07/22 最終更新日: 2020/12/25
文書種別
不具合
状況
修正済み
詳細
タブの選択状態が、BackstageViewのDropDownイベントが処理された後のタイミングで初期化されてしまいます。
そのため、BackstageViewのDropDownイベント内でBackstageViewTabの選択状態を変更しても、正しく反映されません。
例)
C1BackstageViewのLeftPaneItemsに3個のBackstageViewTabを追加し、C1BackstageViewのDropDownイベント内で以下のように、3番目のBackstageViewTabのSelectedプロパティをTrueに設定します。しかし、BackstageViewのドロップダウン時に、3番目のBackstageViewTabが選択状態になりません。
◎サンプルコード(VB)
※この現象は、タブのControlプロパティ(BackstageViewTabをクリックしたときに右側のエリアに表示するコントロール)を設定しない場合は、発生しません。
そのため、BackstageViewのDropDownイベント内でBackstageViewTabの選択状態を変更しても、正しく反映されません。
例)
C1BackstageViewのLeftPaneItemsに3個のBackstageViewTabを追加し、C1BackstageViewのDropDownイベント内で以下のように、3番目のBackstageViewTabのSelectedプロパティをTrueに設定します。しかし、BackstageViewのドロップダウン時に、3番目のBackstageViewTabが選択状態になりません。
◎サンプルコード(VB)
Private Async Sub C1BackstageView1_DropDown(sender As Object, e As EventArgs) Handles C1BackstageView1.DropDown
BackstageViewTab3.Selected = True
End Sub
◎サンプルコード(C#) private async void c1BackstageView1_DropDown(object sender, EventArgs e)
{
backstageViewTab3.Selected = true
}
※この現象は、タブのControlプロパティ(BackstageViewTabをクリックしたときに右側のエリアに表示するコントロール)を設定しない場合は、発生しません。
回避方法
この問題は2020J v3(5.0.20203.469)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
DropDownイベントにasync修飾子を付け、イベント内で非同期でBackstageViewTabの選択状態を切り替えます。
◎サンプルコード(VB)
※修正版を適用しない場合の回避方法は以下の通りです。
DropDownイベントにasync修飾子を付け、イベント内で非同期でBackstageViewTabの選択状態を切り替えます。
◎サンプルコード(VB)
Private Async Sub C1BackstageView1_DropDown(sender As Object, e As EventArgs) Handles C1BackstageView1.DropDown
Await Task.Run(
Sub()
Me.Invoke(New MethodInvoker(Sub()
BackstageViewTab3.Selected = True
End Sub))
End Sub
)
End Sub
◎サンプルコード(C#) private async void c1BackstageView1_DropDown(object sender, EventArgs e)
{
await Task.Run(() => { Invoke(new Action(() => backstageViewTab3.Selected = true), null); });
}
旧文書番号
85832