protected override void OnKeyPress(KeyPressEventArgs e)
        {
            if (_readOnly)
            {
                return;
            }
            hideSelectorList();
            //common keys
            bool bCommonKey = false;

            if (!this.IsStringSelected)
            {
                MathNode node;
                switch (e.KeyChar)
                {
                case '+':
                    bCommonKey = true;
                    node       = mathExp.AddMathNode(typeof(PlusNode));
                    mathExp.ClearFocus();
                    mathExp.SetFocus(node[1]);
                    break;

                case '-':
                    bCommonKey = true;
                    node       = mathExp.AddMathNode(typeof(MinusNode));
                    mathExp.ClearFocus();
                    mathExp.SetFocus(node[1]);
                    break;

                case '*':
                    bCommonKey = true;
                    node       = mathExp.AddMathNode(typeof(MultiplyNode));
                    mathExp.ClearFocus();
                    mathExp.SetFocus(node[1]);
                    break;

                case '/':
                    bCommonKey = true;
                    node       = mathExp.AddMathNode(typeof(DivNode));
                    mathExp.ClearFocus();
                    mathExp.SetFocus(node[1]);
                    break;
                }
            }
            if (!bCommonKey)
            {
                mathExp.UpdateSelected(new string(new char[] { e.KeyChar }));
            }
            this.Refresh();
            RefreshVariableMap();
            _changed = true;
        }