TabControlで使用する時MultiRowのセル設定が反映されないことがある
対象製品
MultiRow for Windows Forms 10.0J
詳細
GcMultiRowをTabControlに貼り付けた場合、GcMultiRowに設定した内容(セルのスタイルなど)が反映されないことがあります。
この現象は以下の条件が揃った場合に発生します。
この事象はTabControlの仕様による制限事項です。標準のDataGridViewを使用する場合にも同様な現象を確認できます。
原因としては、TabPageを切り替えるとき、BindingContextChangedメッセージが発生し、そこに格納された子コントロールはデータ連結の再設定を行います。その際にユーザーの行ったセル設定は失ってしまいます。
この現象を回避するには、MultiRowの設定を実行する前に該当するTabPageのBindingContextを明示的に生成させる方法が考えられます。
設定例:
Me.TabPage2.BindingContext = New BindingContext
この現象は以下の条件が揃った場合に発生します。
- GcMultiRowがデータソースと連結している
- 配置したTabPageが初期状態でアクティブではない
- GcMultiRowのセル設定が該当するタブページを表示する前に行われる
この事象はTabControlの仕様による制限事項です。標準のDataGridViewを使用する場合にも同様な現象を確認できます。
原因としては、TabPageを切り替えるとき、BindingContextChangedメッセージが発生し、そこに格納された子コントロールはデータ連結の再設定を行います。その際にユーザーの行ったセル設定は失ってしまいます。
この現象を回避するには、MultiRowの設定を実行する前に該当するTabPageのBindingContextを明示的に生成させる方法が考えられます。
設定例:
Me.TabPage2.BindingContext = New BindingContext