|
// 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>
/// Represents a command link button control of a task dialog.
/// </summary>
public sealed class TaskDialogCommandLinkButton : TaskDialogButton
{
private string? _descriptionText;
/// <summary>
/// Initializes a new instance of the <see cref="TaskDialogButton"/> class.
/// </summary>
public TaskDialogCommandLinkButton()
{
}
/// <summary>
/// Initializes a new instance of the <see cref="TaskDialogButton"/> class
/// using the given text and, optionally, a description text.
/// </summary>
/// <param name="text">The text of the control.</param>
/// <param name="descriptionText">
/// An additional description text that will be displayed in a separate line when the <see cref="TaskDialogButton"/>s
/// of the task dialog are shown as command links (see <see cref="DescriptionText"/>).
/// </param>
/// <param name="enabled">A value that indicates if the button should be enabled.</param>
/// <param name="allowCloseDialog">
/// A value that indicates whether the task dialog should close when this button is clicked.
/// </param>
public TaskDialogCommandLinkButton(
string? text,
string? descriptionText = null,
bool enabled = true,
bool allowCloseDialog = true)
: base(text, enabled, allowCloseDialog)
{
_descriptionText = descriptionText;
}
/// <summary>
/// Gets or sets an additional description text that will be displayed in a separate
/// line.
/// </summary>
/// <exception cref="InvalidOperationException">
/// The property is set and this button instance is currently bound to a task dialog.
/// </exception>
public string? DescriptionText
{
get => _descriptionText;
set
{
DenyIfBound();
_descriptionText = value;
}
}
internal override string? GetResultingText()
{
string? text = base.GetResultingText();
if (text is not null && _descriptionText is not null)
{
text += '\n' + _descriptionText;
}
return text;
}
}
|