【问题标题】:WinForm WebBrowser Control slow to loadWinForm WebBrowser 控件加载缓慢
【发布时间】:2019-07-15 09:19:15
【问题描述】:

我使用网络浏览器控件在我的 win-form 弹出窗口中显示 HTML 文本:

webBrowserCharges.DocumentText ="HTML string";

但是第一次打开时会花费太多时间。当我再次单击时,它会快速显示数据。

在 winform 中,我编写了以下代码来获取数据并显示在 Web 浏览器控件中

DataSet DsPaymentReceipt;
DsPaymentReceipt = _wbSrv.GetTESTDATA("TEST DATA", FromDt, ToDt);
if (DsPaymentReceipt != null && DsPaymentReceipt.Tables.Count > 0 && DsPaymentReceipt.Tables[0].Rows.Count > 0)
            {
                webBrowserCharges.DocumentText = Convert.ToString(DsPaymentReceipt.Tables[0].Rows[0]["StrXml"]);
            }

但上面的代码不需要时间来获取或分配数据集值。

为什么第一次需要时间,我不知道。

【问题讨论】:

  • 你能给我们看更多的代码吗,因为我不认为你给我们看的代码有问题。
  • 在代码调试器中不会在任何地方停止。第一次在“frm.ShowDialog();”这一行需要时间
  • 是的,但是FrmViewLog(); 是什么
  • 这是我的 Win-Form 名称。我刚刚初始化了它。
  • "但是第一次打开时太费时间了。当我再次点击时,它会快速显示数据。" ,哪些数据?你明白我的意思吗 ?你不能只有frm = new FrmViewLog(); frm.ShowDialog();webBrowserCharges.DocumentText =some data;

标签: c# winforms webbrowser-control


【解决方案1】:

我认为你只需要 Ngen 你的 exe

public static void NgenApplication()
    {
        if (!ApplicationDeployment.IsNetworkDeployed || !ApplicationDeployment.CurrentDeployment.IsFirstRun) return;

        string appPath = Application.StartupPath;
        string winPath = Environment.GetEnvironmentVariable("WINDIR");

        using (var proc = new Process())
        {
            Directory.SetCurrentDirectory(appPath);

            proc.EnableRaisingEvents = false;
            proc.StartInfo.CreateNoWindow = false;
            proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

            proc.StartInfo.FileName = $@"{winPath}\Microsoft.NET\Framework\v2.0.50727\ngen.exe";
            proc.StartInfo.Arguments = $"uninstall {Application.ProductName} /nologo /silent";

            proc.Start();
            proc.WaitForExit();

            proc.StartInfo.FileName = $@"{winPath}\Microsoft.NET\Framework\v2.0.50727\ngen.exe";
            proc.StartInfo.Arguments = $"install {Application.ProductName} /nologo /silent";

            proc.Start();
            proc.WaitForExit();
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2010-12-09
    • 2013-10-31
    • 1970-01-01
    • 2012-05-14
    • 2017-11-07
    相关资源
    最近更新 更多