基本的に、プログラムでリストを にロードし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();
}