【问题标题】:How to create Hyperlink in MessageBox.show? [duplicate]如何在 MessageBox.show 中创建超链接? [复制]
【发布时间】:2013-01-26 23:38:00
【问题描述】:

我曾尝试以这种方式在 MessageBox 中创建超链接:

MessageBox.Show(
    "test message",
    "caption",
    MessageBoxButtons.YesNo,
    MessageBoxIcon.Information,
    MessageBoxDefaultButton.Button1,
    0,
    **"http://google.com"**,
    "Keyword"
);

注意:上面的代码实际上是在另一个问题https://stackoverflow.com/a/1833877/2046417 中“选择作为答案”,但我不知道为什么它对我不起作用。我在keyword处遇到错误(Error 3 The * or -> operator must be applied to a pointer C:\Users\kiriti\Documents\Visual Studio 2010\Projects\TailorApplication_3\TailorApplication_3\Form1.cs 359 140 TailorApplication_3)

【问题讨论】:

  • 链接的问题标记为 VB,而不是 C#。接受的答案不显示超链接;它会在 MessageBox 上显示一个帮助按钮,单击该按钮会导航到 Google。您可以通过简单地删除星号来实现这一点。如果你想要一个实际的超链接,你必须创建自己的表单。
  • 感谢 Ginosaji。这对我来说应该没问题。

标签: c# winforms hyperlink messagebox


【解决方案1】:

我尝试使用代码并找到了解决我自己问题的方法。

if (MessageBox.Show(
        "test", "Visit", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk
    ) == DialogResult.Yes)
{
    System.Diagnostics.Process.Start("http://www.google.com");
}

效果很好! :)

【讨论】:

  • 我必须调整你的代码才能工作:System.Windows.MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show("Do you like to go to google.com?", "My Window-Title", System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxImage.Asterisk); if (messageBoxResult.ToString() == "Yes") { System.Diagnostics.Process.Start("http://www.google.com"); }
  • 注意:在 MessageBox result = yes 上,这实际上启动了带有链接的操作系统默认浏览器。而不是在 MessageBox 中提供可点击的链接。
  • 问题是在消息框中显示一个超链接。单击超链接时应打开链接。相反,这将在消息框关闭后单击按钮打开。
【解决方案2】:

给出的示例是针对 VB 的,如果您从 URL 中删除 **,它将显示消息框并在单击帮助按钮时将您带到该 URL。

有关此调用的参数的更多信息,请参见:

http://msdn.microsoft.com/en-us/library/ww6cfk80.aspx

【讨论】:

    猜你喜欢
    • 2012-02-16
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 2022-01-13
    • 2013-03-06
    • 2011-04-15
    相关资源
    最近更新 更多