Vb.net Winform消息框中的可单击URL?

Vb.net Winform消息框中的可单击URL?,vb.net,winforms,url,messagebox,clickable,Vb.net,Winforms,Url,Messagebox,Clickable,我想在消息框中显示帮助链接。默认情况下,文本显示为不可选择的字符串。您可以在自己的表单上使用该控件。不幸的是,MessageBox表单无法以这种方式进行自定义,因此您需要创建自己的表单,以模仿MessageBox,以达到您的目的。MessageBox不会这样做。您需要使用TaskDialog(在Vista中引入)或创建自己的对话框 --编辑-- 有很多方法可以在XP上伪造任务对话框。我以前在CodeProject.com上使用过一些文章。您必须创建自己的表单,而不是内置的MessageBox,并

我想在消息框中显示帮助链接。默认情况下,文本显示为不可选择的字符串。

您可以在自己的
表单上使用该控件。不幸的是,
MessageBox
表单无法以这种方式进行自定义,因此您需要创建自己的
表单
,以模仿
MessageBox
,以达到您的目的。

MessageBox不会这样做。您需要使用TaskDialog(在Vista中引入)或创建自己的对话框

--编辑--

有很多方法可以在XP上伪造任务对话框。我以前在CodeProject.com上使用过一些文章。

您必须创建自己的表单,而不是内置的MessageBox,并且可以在表单上使用
链接标签


但是,在内置消息框中,按钮之间可以显示帮助按钮。

一个选项是在消息框中显示url以及消息,并提供帮助按钮,将您带到该url:

MessageBox.Show(
    "test message",
    "caption",
    MessageBoxButtons.YesNo,
    MessageBoxIcon.Information,
    MessageBoxDefaultButton.Button1,
    0, '0 is default otherwise use MessageBoxOptions Enum
    "http://google.com",
    "keyword")

重要注意事项:此代码不能出现在表单的加载事件中,帮助按钮将不会打开链接。

您可以将一些自定义代码与
链接标签一起使用,如下所示:

        if (hyperLinks != null)
        {
            foreach (var link in hyperLinks)
            {
                var linkLabel = new LinkLabel();
                linkLabel.Text = link;
                linkLabel.Width = WhateverParentPanelYouHave.Width;
                linkLabel.Click += LabelClicked;
                WhateverParentPanelYouHave.Controls.Add(linkLabel);
             }
         }
其中
超链接
是链接的字符串列表

然后为您的
标签单击
处理程序:

      private async void LabelClicked(object sender, EventArgs e)
      {
        var linkLabel = (LinkLabel) sender;
        var path = linkLabel.Text;
        try
        {
            await Task.Run(() => Process.Start($@"{path}"));
        }
        catch (Exception ex)
        {
            MessageBox.ShowMessage(ex.Message, @"An Error Has Occurred");
        }

      }

请记住,这是您自己的表单,其中添加了
LinkLabel
控件。您必须继承
表单
并使用
ShowDialog()
方法来显示添加了所有控件的表单。

听起来像是两个请求。使用表单而不是MessageBox。谢谢,在我的情况下,创造性的解决方案就足够了。非常感谢。(向所有人投票)请注意,
“关键字”
将作为锚引用附加在URL的#之后。也就是说,用C#中的代码单击“帮助”按钮不会做任何事情