我在C#中编写了一个WebBrowser,我遇到了以下问题: 单击一个按钮时,tabControl1中将生成一个带有WebBrowser的新tabPage。
private void button3_Click(object sender, EventArgs e)
{
WebBrowser browser = new WebBrowser();
browser.Dock = DockStyle.Fill;
browser.Url = new System.Uri("http://google.com");
tabControl1.TabPages.Add(new TabPage("Aba "+ (tabControl1.TabCount + 1).ToString()));
tabControl1.TabPages[tabControl1.TabCount - 1].Controls.Add(browser);
}
我需要知道如何使进度条与属于当前活动tabPage的webbrowser一起使用。 我如何以及在何处插入以下代码:
toolStripProgressBar1.Maximum = (int) e.MaximumProgress;
toolStripProgressBar1.Value = (int)e.CurrentProgress;
答案 0 :(得分:2)
您可以使用匿名函数:
WebBrowser browser = new WebBrowser();
browser.Dock = DockStyle.Fill;
browser.Url = new System.Uri("http://google.com");
tabControl1.TabPages.Add(new TabPage("Aba " + (tabControl1.TabCount + 1).ToString()));
tabControl1.TabPages[tabControl1.TabCount - 1].Controls.Add(browser);
browser.ProgressChanged += new WebBrowserProgressChangedEventHandler( delegate (object sender, WebBrowserProgressChangedEventArgs events)
{
if ((int)events.CurrentProgress > 0)
{
toolStripProgressBar1.Maximum = (int)events.MaximumProgress;
toolStripProgressBar1.Value = (int)events.CurrentProgress;
}
});
答案 1 :(得分:0)
我遇到了破碎的问题导致进度条已经准备就绪,所以这就解决了这个问题。
private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
if ((int)e.CurrentProgress > 0)
{
ProgressBar.Maximum = (int)e.MaximumProgress;
if (ProgressBar.Maximum == (int)e.MaximumProgress)
ProgressBar.Value = 0;
ProgressBar.Value = (int)e.CurrentProgress;
}
}