public KeyValue(TShapeOption aKey, TShapeOptionList List)
 {
     FKey      = Convert.ToString(aKey);
     FAs1616   = Convert.ToString(List.As1616(aKey, 0));
     FAsLong   = Convert.ToString(List.AsLong(aKey, 0));
     FAsString = List.AsUnicodeString(aKey, "");
 }
        private void FillProperties(TreeNode Node)
        {
            lblObjName.Text = "Name:";
            lblObjText.Text = "Text:";
            TShapeProperties Props = (TShapeProperties)Node.Tag;

            if (Props == null)
            {
                dataGrid.DataSource = null;
                return;
            }

            TShapeOptionList ShapeOptions = (Node.Tag as TShapeProperties).ShapeOptions;

            if (ShapeOptions == null)
            {
                dataGrid.DataSource = null;
                return;
            }

            lblObjName.Text = "Name: " + Props.ShapeName;
            lblObjText.Text = "Text: " + Props.Text;

            ArrayList ShapeOpts = new ArrayList();

            foreach (KeyValuePair <TShapeOption, object> opt in ShapeOptions)
            {
                ShapeOpts.Add(new KeyValue(opt.Key, ShapeOptions));
            }
            dataGrid.DataSource = ShapeOpts;
        }