john_my 发表于 2023-2-7 13:56:03

【2022v3】【C1FlexGrid】Node.AddNode后此Node的Row有问题


以前用的是FlexGrid 2013版本,.Net Framework 4.0 版本的。这些代码是从原来的程序直接升级上来的。
现在改用.Net Framework 4.5.2版本2022v3版本。
这段代码使用Node的AddNode函数后,可以增加Node,但是Node对应的Row行的Index=0,并不会是在上一个Node行下加行的那一行。
请问一下新版的要如何处理?

Richard.Ma 发表于 2023-2-7 13:56:04

没有详细研究你这边通过删除行 来删除节点,不过我测试了一下直接通过删除所有子节点这种方式实际就可以了,这样逻辑也是比较清晰的

                else if (vs.GetCellCheck(e.Row,e.Col)== CheckEnum.Unchecked)
                {
                  while(r.Node.Children > 0)
                  {
                        r.Node.FirstChild.RemoveNode();
                  }
                }

john_my 发表于 2023-2-7 15:23:28

我测试出来,减行后再用AddNode去加,就会错。

附件是出错的示例。


                        if (vs.Rows.Node != null && vs.Rows.Node.Parent != null && vs.Rows.Node.Parent.Key == r.Node.Key)
                        {
                            vs.Rows.Remove(i);
                            i--;
                        }

出错就是这段。

但是这个写法在以前2013v1版本就是正常使用的。
如果这个方法不行,请告诉我一个减掉父节点Node下所有行的方法。

John-Intramedia 发表于 2023-2-8 10:30:52

已经解决了。

以前通过RemoveNode()无法同时删行所以才使用Row.Remove

现在测试这样做OK。

Richard.Ma 发表于 2023-2-8 12:26:26

嗯,那么看了就是新老版本确实是有变化。问题解决就行
页: [1]
查看完整版本: 【2022v3】【C1FlexGrid】Node.AddNode后此Node的Row有问题