LinkLabel... 在默认浏览器中打开?

32

如何在计算机的默认浏览器中打开一个LinkLabel


1
一旦您设置了正确的有效URL,那么这就是默认行为。您遇到了什么问题?到目前为止,您的代码是什么样子的? - Davide Piras
1
我在属性中寻找能够启动它的东西。最初,我尝试将URL地址设置为.Text属性,但当然那行不通。 - acctman
我不理解这个控件的存在,可能是因为我不知道如何使用它。 - beppe9000
4个回答

55

是的 - 你可以在“链接点击”事件中使用System.Diagnostics.Process.Start(url)


1
私有 void linkSubmit_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start(linkSubmit.text as String); } - acctman
谢谢... :D :D - Alejo Florez
https://dev59.com/9mEh5IYBdhLWcg3w9Xan#61035650 - François Breton

11
我总是这样使用它们。这样,您将获得默认的浏览器来打开URL。
ProcessStartInfo sInfo = new ProcessStartInfo("http://www.google.com");
Process.Start(sInfo);

10

这里是受MSDN启发的一种解决方案,可以在不将URL硬编码到代码中的情况下运行:

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    string url;
    if (e.Link.LinkData != null)
        url = e.Link.LinkData.ToString();
    else
        url = linkLabel1.Text.Substring(e.Link.Start, e.Link.Length);

    if (!url.Contains("://"))
        url = "https://" + url;

    var si = new ProcessStartInfo(url);
    Process.Start(si);
    linkLabel1.LinkVisited = true;
}

您可以使用LinkArea轻松地在链接周围添加未超链接的文本。


2

尝试这个解决方案,它更好:

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    System.Diagnostics.Process.Start(((LinkLabel)sender).Text);
}

同意 - 使用发送方对象进行代码重用比每个链接/控件使用专用处理程序更好。 - SteveCinq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接