void OnFormClose(object sender, EventArgs args) { if (_detailsForm == null || _detailsForm.IsDisposed) { return; } Form topLevel = (Form)this.TopLevelControl; _detailsForm.FormClosed -= new FormClosedEventHandler(OnFormClose); _detailsForm.Disposed -= new EventHandler(OnFormClose); if (!sender.Equals(this)) { topLevel.SizeChanged -= new EventHandler(OnLocationChanged); topLevel.LocationChanged -= new EventHandler(OnLocationChanged); topLevel.FormClosing -= new FormClosingEventHandler(OnFormClose); } if (sender.Equals(this) || sender.Equals(this.TopLevelControl)) { var form = _detailsForm; _detailsForm = null; form.Close(); } }
void CreateAndShowDetails(Item item) { if (_detailsForm != null && !_detailsForm.IsDisposed) { _detailsForm.Close(); _detailsForm.Dispose(); } Form topLevel = (Form)this.TopLevelControl; _detailsForm = new ItemDetails(topLevel, item); _detailsForm.Owner = topLevel; _detailsForm.FormClosed += new FormClosedEventHandler(OnFormClose); _detailsForm.Disposed += new EventHandler(OnFormClose); topLevel.SizeChanged += new EventHandler(OnLocationChanged); topLevel.LocationChanged += new EventHandler(OnLocationChanged); topLevel.FormClosing += new FormClosingEventHandler(OnFormClose); _detailsForm.Show(); }
void OnFormClose(object sender, EventArgs args) { if (_detailsForm == null || _detailsForm.IsDisposed) return; Form topLevel = (Form)this.TopLevelControl; _detailsForm.FormClosed -= new FormClosedEventHandler(OnFormClose); _detailsForm.Disposed -= new EventHandler(OnFormClose); if (!sender.Equals(this)) { topLevel.SizeChanged -= new EventHandler(OnLocationChanged); topLevel.LocationChanged -= new EventHandler(OnLocationChanged); topLevel.FormClosing -= new FormClosingEventHandler(OnFormClose); } if (sender.Equals(this) || sender.Equals(this.TopLevelControl)) { var form = _detailsForm; _detailsForm = null; form.Close(); } }