protected override void OnMouseDown(MouseEventArgs arg) { try { if (Enabled) { IEnvelope env = GetExtents(); //MessageBox.Show(string.Format("({0},{1}) to ({0},{1})", env.XMin, env.YMin, env.XMax, env.YMax), "Envelope"); if (_form != null) //User may click when form is already loaded. { UpdateForm(env); _form.Activate(); } else { //Grid grid = new Grid(env); _form = new GenerateGridForm(); _form.saveButton.Click += Form_CreateGrid; _form.FormClosed += Form_Closed; _form.Grid = new Grid(env); //grid; UpdateForm(env); _form.Show(); } } else { MessageBox.Show(@"The active data frame must be in a projected coordinate system.", @"For this command...", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show(GetType() + @" encountered a problem." + Environment.NewLine + Environment.NewLine + ex.Message, @"Unhandled Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
//What we will do when the form says it has closed internal void Form_Closed(object sender, FormClosedEventArgs e) { _form.Grid.Erase(); _form = null; }