internal void RemoveBoundaryClick(object sender, EventArgs e) { var id = -1; var cnt = 0; if (_graphTabPanel.Cst.Graphs == null) { return; } var len = _graphTabPanel.Cst.Graphs.Length; foreach (var t in _graphTabPanel.Cst.Graphs) { if (t.ObjectTag.TypeId == GraphManipulationType.WbWaferStartStop) { ++cnt; } } if (cnt == 1) { MessageBox.Show(@"You Can't Remove The Last Zone There Has To Be At Least One"); return; } for (var i = 0; i < len; i++) { if (_graphTabPanel.Cst.Graphs[i].TagId != _graphParameters.LastBoundaryMoveId) { continue; } id = i; break; } if (id < 0 || id >= len) { return; } if (_graphTabPanel.Cst.Graphs[id].ObjectTag == null) { return; } _graphPanel.RemoveGraph(_graphTabPanel.Cst.Graphs[id].TagId); _graphPanel.RedrawAll(); _graphParameters.BoundaryChangeCallback?.Invoke(); if (BoundaryCallback == null) { return; } try { var ev = new BoundaryEventArgs { BoundarySetId = -1 }; BoundaryCallback(this, ev); } // ReSharper disable once EmptyGeneralCatchClause catch { } }