本质上,我希望我的程序将一个列表加载到 中ListBox
,并允许用户单击“打印”,它可以导航WebBrowser
到列表中的每个页面,将它们单独打印出来。
但是,它只打印出 2 页(在我的示例中,列表框中有 4 页)然后停止,没有完成循环。(很可能是由于WebBrowser
控件仍然很忙)
我觉得我在这里犯了一个简单的错误。非常感谢任何有关导致此问题的原因的见解!
我的代码:
private void Form1_Load(object sender, EventArgs e)
{
DirSearch(Application.StartupPath);
}
void DirSearch(string sDir)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
foreach (string f in Directory.GetFiles(d).Select(Path.GetFileName))
{
listBox1.Items.Add(f);
}
DirSearch(d);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
WebBrowser webBrowserForPrinting = new WebBrowser();
webBrowserForPrinting.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(PrintDocument);
foreach (string s in listBox1.Items)
{
try
{
webBrowserForPrinting.Url = new Uri(Application.StartupPath + "\\COAForms\\" + s);
}
catch (Exception)
{
}
}
}
private void PrintDocument(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// Print the document now that it is fully loaded.
((WebBrowser)sender).Print();
}