|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace System.Windows.Forms;
/// <summary>
/// Provides data for the <see cref="RichTextBox.LinkClicked"/> event.
/// </summary>
public class LinkClickedEventArgs : EventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="LinkClickedEventArgs"/> class.
/// </summary>
/// <param name="linkText">The text of the link being clicked.</param>
public LinkClickedEventArgs(string? linkText) : this(linkText, 0, 0) { }
/// <summary>
/// Initializes a new instance of the <see cref="LinkClickedEventArgs"/> class.
/// </summary>
/// <param name="linkText">The text of the link being clicked.</param>
/// <param name="linkStart">The start of the link span being clicked.</param>
/// <param name="linkLength">The length of the link span being clicked.</param>
/// <exception cref="ArgumentOutOfRangeException">
/// <para>The value for <paramref name="linkStart"/> or <paramref name="linkLength"/> is negative.</para>
/// <para>-or-</para>
/// <para>The values for <paramref name="linkStart"/> and <paramref name="linkLength"/> would overflow addition.</para>
/// </exception>
public LinkClickedEventArgs(string? linkText, int linkStart, int linkLength)
{
ArgumentOutOfRangeException.ThrowIfNegative(linkStart);
ArgumentOutOfRangeException.ThrowIfNegative(linkLength);
if (linkStart + linkLength < 0)
throw new ArgumentOutOfRangeException(nameof(linkLength));
LinkText = linkText;
LinkStart = linkStart;
LinkLength = linkLength;
}
/// <summary>
/// Gets the length of the link span being clicked.
/// </summary>
public int LinkLength { get; }
/// <summary>
/// Gets the start of the link span being clicked.
/// </summary>
public int LinkStart { get; }
/// <summary>
/// Gets the text of the link being clicked.
/// </summary>
public string? LinkText { get; }
}
|