protected override DialogResult dlgDrawingsMouseDown(object sender, MouseEventArgs e, ref int nStep, dlgDrawings owner)
        {
            DialogResult ret = DialogResult.None;

            switch (nStep)
            {
            case 0:                    //first point
                p1.X = e.X;
                p1.Y = e.Y;
                calculateAttr();
                nStep++;
                break;

            case 1:                    //second point
                p2.X = e.X;
                p2.Y = e.Y;
                calculateAttr();
                nStep++;
                {
                    dlgEditLine dlgLine = new dlgEditLine();
                    dlgLine.LoadData(this, owner);
                    ret = dlgLine.ShowDialog(owner);
                    calculateAttr();
                }
                break;
            }
            return(ret);
        }
        internal override DialogResult Edit(dlgDrawings owner)
        {
            DialogResult ret     = DialogResult.None;
            dlgEditLine  dlgLine = new dlgEditLine();

            dlgLine.LoadData(this, owner);
            ret = dlgLine.ShowDialog(owner);
            calculateAttr();
            return(ret);
        }