【问题标题】:Dynamic Linked Label cannot open a website动态链接标签无法打开网站
【发布时间】:2022-10-06 20:27:35
【问题描述】:

我最近开始使用动态组件,在我开始使用动态链接标签之前它工作得很好。所以这是我的问题:我想通过标签链接打开一个网站,但每次我尝试这样做时,它都会破坏程序并给我错误:System.ComponentModel.Win32Exception。

 private void CreateDynamicLinkedLabel() {
        LinkLabel mylinklab = new LinkLabel();
        mylinklab.Text = \"asdasdasda\";
        mylinklab.AutoSize = true;
        mylinklab.LinkClicked += new LinkLabelLinkClickedEventHandler(mylinklab_Clicked);
        Controls.Add(mylinklab);
    }

    private void mylinklab_Clicked(object sender, LinkLabelLinkClickedEventArgs e) {
        Process.Start(\"http://www.google.com\");
    }

我也试过这个:

    private void mylinklab_Clicked(object sender, LinkLabelLinkClickedEventArgs e) {
        Process.Start(\"chrome.exe\",\"http://www.google.com\");
    }

我什至包括using System.Diagnostics; 我试图弄清楚为什么它不起作用,但每个 Youtube 视频看起来都像我的代码。 也许还有另一种打开链接的方法,但我想不通。

    标签: c#


    【解决方案1】:

    我假设您的目标是 net core 3+。在这种情况下,您需要显式设置UseShellExecute=true 以获得在网络框架中的行为。在 net core 中,新进程的默认选项发生了重大变化。更多详情https://github.com/dotnet/runtime/issues/17938

    ProcessStartInfo psi = new ProcessStartInfo
    {
        FileName = url,
        UseShellExecute = true
    };
    Process.Start (psi);
    

    【讨论】:

      【解决方案2】:

      将此添加到代码中的方法中:

      Process.Start(new ProcessStartInfo() { FileName = url, UseShellExecute = true });
      

      【讨论】:

        猜你喜欢
        • 2021-04-13
        • 1970-01-01
        • 1970-01-01
        • 2014-01-21
        • 1970-01-01
        • 2019-06-16
        • 1970-01-01
        • 1970-01-01
        • 2018-12-12
        相关资源
        最近更新 更多