public DialogResult ShowDialog(Form form) { // Now that we implemented IMsoComponent, calling IVsUIShell.EnableModeless // causes more problems than it solves (ASURT 41876). // uishell.EnableModeless(0); // Site the Form if possible, to give access to AmbientProperties. ShowDialogContainer container = null; if (form.Site == null) { AmbientProperties ambient = new AmbientProperties(); ambient.Font = (Font)Styles["DialogFont"]; container = new ShowDialogContainer(ambient); container.Add(form); } DialogResult dlgResult = DialogResult.None; try { dlgResult = form.ShowDialog(GetDialogOwnerWindow()); } finally { if (container != null) { container.Remove(form); } } return(dlgResult); }
/// <include file='doc\DialogContainerWithToolbar.uex' path='docs/doc[@for="DialogContainerWithToolbar.ShowDialog"]/*' /> /// <devdoc> /// Show this window as modal dialog. /// </devdoc> public new DialogResult ShowDialog() { // if we don't have a service provider we can not show the dialog correctly if (null == provider) { throw new InvalidOperationException(); } DialogResult result; IMessageFilter filter = this as IMessageFilter; // Make sure that there is non visual containment for this form ShowDialogContainer dialogContainer = null; if (this.Site == null) { dialogContainer = new ShowDialogContainer((IServiceProvider)this); dialogContainer.Add(this); } try { // This form needs to install its message filter in order to // let the toolbar process the mouse events. Application.AddMessageFilter(filter); // Show the modal dialog result = base.ShowDialog(); } finally { if (dialogContainer != null) { dialogContainer.Remove(this); } Application.RemoveMessageFilter(filter); } return(result); }
/// <include file='doc\DialogContainerWithToolbar.uex' path='docs/doc[@for="DialogContainerWithToolbar.ShowDialog"]/*' /> /// <devdoc> /// Show this window as modal dialog. /// </devdoc> public new DialogResult ShowDialog() { // if we don't have a service provider we can not show the dialog correctly if (null == provider) throw new InvalidOperationException(); DialogResult result; IMessageFilter filter = this as IMessageFilter; // Make sure that there is non visual containment for this form ShowDialogContainer dialogContainer = null; if (this.Site == null) { dialogContainer = new ShowDialogContainer((IServiceProvider)this); dialogContainer.Add(this); } try { // This form needs to install its message filter in order to // let the toolbar process the mouse events. Application.AddMessageFilter(filter); // Show the modal dialog result = base.ShowDialog(); } finally { if (dialogContainer != null) dialogContainer.Remove(this); Application.RemoveMessageFilter(filter); } return result; }
internal ShowDialogSite(IComponent component, ShowDialogContainer container, String name) { this.component = component; this.container = container; this.name = name; }