private void UpdateTable(RegisterEntry entry) { TreeGridNode node; string group = entry.GetGroup(); object[] ent = entry.GetTableEntry(); bool b, isField = entry.GetRegType() == RegisterEntry.type_field.FIELD; treeGridView1.Rows.AddRange(); foreach (TreeGridNode group_node in treeGridView1.Nodes) { if (group_node.Cells["Registers"].Value.ToString().Equals(group)) { if (!isField) { node = group_node.Nodes.Add(ent); group_node.Expand(); } else { TreeGridNode tmp = null; group_node.Expand(); foreach (TreeGridNode reg in group_node.Nodes) { b = reg.GetIsExpanded(); reg.Expand(); if ((int)reg.Cells["IndexColumn"].Value == entry.GetIndex()) { tmp = reg; break; } else if (!b) { reg.Collapse(); } } if (tmp != null) { node = tmp.Nodes.Add(ent); //group_node.Expand(); tmp.Expand(); } break; } } } }