combit List & Label 29 - .NET Help
combit.Reporting Namespace / ListLabel Class / HandleHyperlinkAction Event


In This Topic
    HandleHyperlinkAction Event
    In This Topic

    This event is triggered when hovering or clicking on a link in the preview.

    Syntax
    'Declaration
     
    
    Public Event HandleHyperlinkAction As EventHandler(Of HyperLinkClickedEventArgs)
    public event EventHandler<HyperLinkClickedEventArgs> HandleHyperlinkAction
    public:
    event EventHandler<HyperLinkClickedEventArgs^>^ HandleHyperlinkAction
    Event Data

    The event handler receives an argument of type HyperLinkClickedEventArgs containing data related to this event. The following HyperLinkClickedEventArgs properties provide information specific to this event.

    PropertyDescription

    Determines which action is executed.

     

    Contains the user data or the link for the action to be executed.

     

    Contains the used protocol of the user data or the link for the action to be executed.

     

    Determines whether List & Label should perform its own standard execution or whether no further processing should be executed by List & Label because your own implementation/action has already been executed.

    Value

    Meaning

    0

    Perform standard List & Label handling.

    1

    Do not have any further standard handling executed by List & Label.

    Default

    0

     

    Determines the tooltip text to be displayed when the mouse is moved over the object in the preview.

     
    Example

    The following example shows how to register the event for List & Label and contains an exemplary implementation that reacts to your own protocol myProtocol and displays special tooltip text accordingly and implements the click actions.

    // Register the event for custom actions hovering a object with link property for the preview.
    LL.HandleHyperlinkAction += LL_HandleHyperlinkAction;
    
    // Event implementation for handling custom actions within the preview
    private void LL_HandleHyperlinkAction(object sender, HyperLinkClickedEventArgs e)
    {
        // Collect input data for further use
        string function = string.Empty, value = string.Empty;
        if (!string.IsNullOrEmpty(e.Data))
        {
            function = e.Data.Split('=')[0];
            value = e.Data.Split('=')[1];
        }
        switch (e.Action)
        {
            // Define the tooltip when hovering over an object
            // within the preview
            case LlHyperlinkAction.QueryTooltip:
            {
                // check if this is "my" business at all
                if (e.Protocol == "myProtocol")
                {
                    switch (function)
                    {
                        case "searchCustomer":
                        {
                            e.TooltipText = $"Searches the selected \n customer" +
                                $" '{value}' within the application.";
                        }
                        break;
                        case "searchOrder":
                        {
                            e.TooltipText = $"Searches the selected \n order" +
                                $" with ID '{value}' within the application.";
                        }
                        break;
                    }
                    // 1 = indicates handled by your own application-code
                    // 0 = use default handling from List & Label
                    e.ReturnValue = 1;
                }
            }
            break;
            // This is queried whenever the object with the link property is hovered
            case LlHyperlinkAction.RightButtonAllowed:
            {
                // 1 = not allowed
                // 2 = allowed
                e.ReturnValue = 1;
            }
            break;
            // Left mouse button was clicked
            case LlHyperlinkAction.LeftClicked:
            {
                // 1 = indicates handled by your own application-code
                // 0 = use default handling from List & Label
                int actionResult = 0;
                if (e.Protocol == "myProtocol")
                {
                    MessageBox.Show($"Object with custom Link property " +
                        $"was clicked with left mouse button and contains " +
                        $"this information:\n\n " +
                    $"protocol: {e.Protocol}\n " +
                    $"function: {function}\n " +
                    $"value: {value}");
                    actionResult = 1;
                }
                e.ReturnValue = actionResult;
            }
            break;
            // Right mouse button was clicked
            case LlHyperlinkAction.RightClicked:
            {
                // do anything with the right-click here, if allowed
                // by action LlHyperlinkAction.RightButtonAllowed
            }
            break;
        }
    }
    

     

    Requirements

    Platforms: Windows 10 (Version 21H2 - 23H2), Windows 11 (21H2 - 22H2), Windows Server 2016 - 2022
    .NET: .NET Framework 4.8, .NET 6, .NET 7, .NET 8

    See Also