Winform消息框中的可点击URL?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform消息框中的可点击URL?相关的知识,希望对你有一定的参考价值。
我想在消息框中显示帮助链接。默认情况下,文本显示为不可选字符串。
一个选项是在消息框中显示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")
重要的是要注意这段代码不能在表单的load事件中,Help按钮不会打开链接。
您可以在自己的LinkLabel
上使用Form
控件。不幸的是,MessageBox
表格不能以这种方式定制,因此您需要创建自己的Form
来模仿MessageBox
以达到您的目的。
MessageBox不会这样做。您需要使用TaskDialog(在Vista中引入)或创建自己的对话框。
- 编辑 - 有办法在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()
方法显示您的表单,并添加所有控件。
以上是关于Winform消息框中的可点击URL?的主要内容,如果未能解决你的问题,请参考以下文章
C#-WinForm-弹窗提示框-如何知道用户点击的是哪个按钮?
c#winform使用post方法定点传送用户名和密码到指定url网页中的
请问下,在ext的可编辑grid中点击回车事件,怎样将光标聚焦到grid外的某个文本框中?
2021-11-18 WinFrom面试题 Winform中,怎么实现Form2中点击打开按钮,打开Form1,输入文本,再点击Form1中的“确定”按钮,把输入的值显示到Form2的文本框中?