Back to Devexpress

How to: Display a Hyperlink in a Tooltip

windowsforms-15721-common-features-tooltip-management-how-to-display-a-hyperlink-in-a-tooltip.md

latest6.3 KB
Original Source

How to: Display a Hyperlink in a Tooltip

  • Sep 03, 2021
  • 3 minutes to read

Tooltips can contain hyperlinks.

You can use HTML tags to format the text in tooltips. The <href> and </href> tags allow you to insert a hyperlink.

<href=www.devexpress.com>Our Web Site</href>

Use the following properties to enable HTML tags in tooltips:

Handle the ToolTipController.HyperlinkClick event to respond to a click on a hyperlink.

This example shows how to create a super tooltip with a hyperlink and assign it to a SimpleButton.

The button’s SuperTip property allows you to specify a super tooltip. Use the ToolTipController.AllowHtmlText, SuperToolTip.AllowHtmlText, or ToolTipItem.AllowHtmlText property to enable HTML tags. Handle the ToolTipController.HyperlinkClick event to respond to a click on the hyperlink.

The SuperToolTip Editor allows you to create super tooltips in the designer. To invoke the editor, click the SuperTip property’s ellipsis button in the Properties window.

If you create a tooltip in the designer, you still need to handle the HyperlinkClick event in code. Use the Properties window to assign an event handler.

The example below shows how to create a super tooltip in code.

csharp
using DevExpress.Utils;
using System.Diagnostics;

private void Form1_Load(object sender, EventArgs e) {
    // Access the controller that manages tooltips for all controls:
    ToolTipController defaultTooltipController = DevExpress.Utils.ToolTipController.DefaultController;

    // Create and customize a SuperToolTip:
    SuperToolTip sTooltip = new SuperToolTip();
    SuperToolTipSetupArgs args = new SuperToolTipSetupArgs();
    args.Title.Text = "Header";
    args.Contents.Text = "This tooltip contains a hyperlink. Visit the <href=http://help.devexpress.com>DevExpress Knowledge Center</href> to learn more.";
    args.ShowFooterSeparator = true;
    args.Footer.Text = "Footer";
    sTooltip.Setup(args);
    // Enable HTML Text Formatting for the created SuperToolTip:
    sTooltip.AllowHtmlText = DefaultBoolean.True;
    //..or enable this feature for all tooltips:
    //defaultTooltipController.AllowHtmlText = true;

    // Respond to clicking hyperlinks in tooltips:
    defaultTooltipController.HyperlinkClick += defaultTooltipController_HyperlinkClick;

    // Assign a SuperToolTip to the button:
    simpleButton1.SuperTip = sTooltip;
}

void defaultTooltipController_HyperlinkClick(object sender, HyperlinkClickEventArgs e) {
    Process process = new Process();
    process.StartInfo.FileName = (e.Link);
    process.StartInfo.Verb = "open";
    process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
    try {
        process.Start();
    }
    catch { }
}
vb
Imports DevExpress.Utils

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' Access the controller that manages tooltips for all controls:
    Dim defaultTooltipController As ToolTipController = DevExpress.Utils.ToolTipController.DefaultController

    ' Create and customize a SuperToolTip:
    Dim sTooltip As New SuperToolTip()
    Dim args As New SuperToolTipSetupArgs()
    args.Title.Text = "Header"
    args.Contents.Text = "This tooltip contains a hyperlink. Visit the <href=http://help.devexpress.com>DevExpress Knowledge Center</href> to learn more."
    args.ShowFooterSeparator = True
    args.Footer.Text = "Footer"
    sTooltip.Setup(args)
    ' Enable HTML Text Formatting for the created SuperToolTip:
    sTooltip.AllowHtmlText = DefaultBoolean.[True]
    '..or enable this feature for all tooltips:
    'defaultTooltipController.AllowHtmlText = True

    ' Respond to clicking hyperlinks in tooltips:
    AddHandler defaultTooltipController.HyperlinkClick, AddressOf defaultTooltipController_HyperlinkClick

    ' Assign a SuperToolTip to the button:
    SimpleButton1.SuperTip = sTooltip
End Sub

Private Sub defaultTooltipController_HyperlinkClick(sender As Object, e As HyperlinkClickEventArgs)
    Dim process As New Process()
    process.StartInfo.FileName = (e.Link)
    process.StartInfo.Verb = "open"
    process.StartInfo.WindowStyle = ProcessWindowStyle.Normal
    Try
        process.Start()
    Catch
    End Try
End Sub