private void OnShowToolTip(object sender, ToolTipEventArgs e) { if (!IsDisposed) { // Do not show tooltips when the form we are in does not have focus Form topForm = FindForm(); if ((topForm != null) && !topForm.ContainsFocus) { return; } // Never show tooltips are design time if (!DesignMode) { IContentValues sourceContent = null; LabelStyle toolTipStyle = LabelStyle.ToolTip; // Find the button spec associated with the tooltip request ButtonSpec buttonSpec = _buttonManager.ButtonSpecFromView(e.Target); // If the tooltip is for a button spec if (buttonSpec != null) { // Are we allowed to show page related tooltips if (AllowButtonSpecToolTips) { // Create a helper object to provide tooltip values ButtonSpecToContent buttonSpecMapping = new ButtonSpecToContent(Redirector, buttonSpec); // Is there actually anything to show for the tooltip if (buttonSpecMapping.HasContent) { sourceContent = buttonSpecMapping; toolTipStyle = buttonSpec.ToolTipStyle; } } } if (sourceContent != null) { // Remove any currently showing tooltip if (_visualPopupToolTip != null) { _visualPopupToolTip.Dispose(); } // Create the actual tooltip popup object _visualPopupToolTip = new VisualPopupToolTip(Redirector, sourceContent, Renderer, PaletteBackStyle.ControlToolTip, PaletteBorderStyle.ControlToolTip, CommonHelper.ContentStyleFromLabelStyle(toolTipStyle)); _visualPopupToolTip.Disposed += new EventHandler(OnVisualPopupToolTipDisposed); // Show relative to the provided screen rectangle _visualPopupToolTip.ShowCalculatingSize(RectangleToScreen(e.Target.ClientRectangle)); } } } }