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

有帮助吗?

解决方案

的一个选项是在消息框中显示的URL,与消息一起,并提供帮助按钮,您可以到该网址:

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

需要注意的该代码不能在窗体的负载情况下,帮助按钮将不会打开该链接。

其他提示

可以使用 LinkLabel 控制你自己Form这一点。不幸的是,MessageBox形式,不能以这种方式定制的,所以你需要创建自己的Form模仿MessageBox你的目的。

的MessageBox将这样做。你要么需要使用TaskDialog其实(在Vista中引入),或者创建自己的对话框。

- Edit--结果 有办法伪造的XP任务对话框。有迹象表明,我已经在过去使用上CodeProject.com的几篇文章。

您必须创建的,而不是内置的MessageBox自己的表单,并可以在其上使用LinkLabel

然而在内置的MessageBox帮助按钮可以在按钮中被显示。

您可以使用一些自定义代码,像这样LinkLabel

        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);
             }
         }

在哪里hyperLinks是你的链接字符串列表。

然后,对于您的LabelClicked处理程序:

      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控制添加到它。你必须从Form继承和使用ShowDialog()方法与你的所有添加到它控件来显示你的表格。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top