作成日: 2026/11/12 最終更新日: 2026/11/12
文書種別
不具合
状況
回避方法あり
詳細
ツリー表示を設定したFlexGridにおいて、以下の順番で処理を実行すると、ツリー表示の下部が表示されなくなります。
1. コードでFlexGrid にデータ設定・ツリー表示を設定する
2. コードから行を追加し、追加した行の`IsNode`を`True`、`Node.Level`を設定する
3. 既存のノードを折りたたむ
4. その後、`BeginUpdate()`~`EndUpdate()`の処理を実行する
この設定後にフォームを表示すると、グリッドに追加した行よりも下の部分が表示されません。
1. コードでFlexGrid にデータ設定・ツリー表示を設定する
2. コードから行を追加し、追加した行の`IsNode`を`True`、`Node.Level`を設定する
3. 既存のノードを折りたたむ
4. その後、`BeginUpdate()`~`EndUpdate()`の処理を実行する
この設定後にフォームを表示すると、グリッドに追加した行よりも下の部分が表示されません。
回避方法
`BeginUpdate()`~`EndUpdate()`の処理内で、`BeginInvoke`を使用して以下のようにノード折りたたみ/展開処理を実行することで、現象を回避できます。
C1FlexGrid1.BeginUpdate() ・・・(途中省略) C1FlexGrid1.BeginInvoke(New MethodInvoker(Sub() C1FlexGrid1.Rows(1).Node.Collapsed = True C1FlexGrid1.Rows(1).Node.Collapsed = False End Sub)) ・・・(途中省略) C1FlexGrid1.EndUpdate()
【メモ】
・`EndUpdate()`の後で同じ処理を実行することでも現象を回避できます。
・`BeginUpdate()`~`EndUpdate()`内で`BeginInvoke`を使用せずに同じ処理を実行した場合は、現象を回避できません。