TabControlで使用する時MultiRowのセル設定が反映されないことがある

文書番号 : 40655     文書種別 : 技術情報     登録日 : 2017/07/26     最終更新日 : 2017/07/26
文書を印刷する
対象製品
MultiRow for Windows Forms 10.0J
詳細
GcMultiRowをTabControlに貼り付けた場合、GcMultiRowに設定した内容(セルのスタイルなど)が反映されないことがあります。
この現象は以下の条件が揃った場合に発生します。

  1. GcMultiRowがデータソースと連結している
  2. 配置したTabPageが初期状態でアクティブではない
  3. GcMultiRowのセル設定が該当するタブページを表示する前に行われる

この事象はTabControlの仕様による制限事項です。標準のDataGridViewを使用する場合にも同様な現象を確認できます。
原因としては、TabPageを切り替えるとき、BindingContextChangedメッセージが発生し、そこに格納された子コントロールはデータ連結の再設定を行います。その際にユーザーの行ったセル設定は失ってしまいます。

この現象を回避するには、MultiRowの設定を実行する前に該当するTabPageのBindingContextを明示的に生成させる方法が考えられます。

設定例:
Me.TabPage2.BindingContext = New BindingContext