C#メモ TaskDialogでメッセージにリンクを貼ってクリックしたらブラウザを起動してページを表示してみる

C#

いつもやり方を忘れちゃって困っちゃうのでメモしとくことに。

ポイントはこんなとこ。

  • HyperlinksEnabledをtrueに設定する
  • HyperlinkClickにリンクをクリックしたときのイベントを定義する
  • リンクはダイアログに表示する文字列の中にhtmlの<a>タグを書く

んで、コードはこんな感じ。

// ダイアログを生成する
Microsoft.WindowsAPICodePack.Dialogs.TaskDialog dialog = new Microsoft.WindowsAPICodePack.Dialogs.TaskDialog();

// ダイアログの設定をする
// ※文字列を指定するプロパティを設定して他のプロパティはデフォルトのままにしとく
dialog.Caption = "ダイアログのタイトル";
dialog.InstructionText = "InstructionTextはリンクは使えない";
dialog.Text = "Textは<a href=\"https://www.tetsuyanbo.net\">リンク</a>は使える";
dialog.DetailsExpandedLabel = "DetailsExpandedLabelはリンクは使えない";
dialog.DetailsExpandedText = "DetailsExpandedTextは<a href=\"https://www.tetsuyanbo.net\">リンク</a>は使える";
dialog.FooterText = "FooterTextプロパティは<a href=\"https://www.tetsuyanbo.net\">リンク</a>は使える";

// ハイパーリンクをクリックしたときの設定する
// ※HyperlinksEnabledをtrueにしてHyperlinkClickでイベント(今回はラムダ式)を定義する
dialog.HyperlinksEnabled = true;
dialog.HyperlinkClick += (sender, arguments) =>
{
	// 第2引数にURLが入ってるので規定のブラウザで表示する
	System.Diagnostics.Process.Start(arguments.LinkText);
};

// ダイアログを表示する
// ※今回はクリックしたボタンは気にしないので戻り値はさらっと流す
_ = dialog.Show();

実行してみるとこんな感じ。

DetailsExpandedTextを表示するとこんな感じ。

んで、リンクをクリックすると…規定のブラウザが起動してリンク先のページを表示された。
リンクはどれも同じなんで同じページが表示されるけど、URLを変えればそれぞれのページが表示される。

こんで、なんかあったときに対応したヘルプを表示したりできるかな。
んまま、明日への自分へのメモってことで。