在WinForm的消息框可点击的网址是什么?
-
11-09-2019 - |
题
我想显示的链接在消息框中的帮助。默认情况下,文本被显示为不可选择的字符串。
解决方案
的一个选项是在消息框中显示的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()
方法与你的所有添加到它控件来显示你的表格。
不隶属于 StackOverflow