private void SetListPanel(KeyNode node)
        {
            if (node == null) return;

            try
            {
                bool selAll = (Control.ModifierKeys & Keys.Control) == Keys.Control;
                bool addToTemp = (Control.ModifierKeys & Keys.Shift) == Keys.Shift;
                SetListPaneSource(node.Catalog.AllKey, selAll, addToTemp);
            }
            catch (Exception) { }
        }
        private void RenderNodes(KeyCatalog catalog, NodeCollection nodes, int restoreLevel)
        {
            restoreLevel--;
            foreach (KeyCatalog sub in catalog.Subcatalogs.SortedValues)
            {
                KeyNode n = new KeyNode(sub.ToString()) { Catalog = sub };
                nodes.Add(n);

                if (restoreLevel < 0)
                {
                    if (SelectionNodeName == sub.Name)
                        ATree.SelectedNode = n;
                }

                if (!sub.IsLeaf)
                    RenderNodes(sub, n.Nodes, restoreLevel);
            }
        }