DOBON.NET DOBON.NETプログラミング掲示板過去ログ

印刷プレビューダイアログの印刷ボタンを押しても印刷されない

環境/言語:[)、.NET Frameworkのバージョン1.1 C#]
分類:[.NET]

こんにちわ。
テキストボックス内の文字を印刷するプログラムを書いてみたのですが
印刷はうまくいくけどプレビューでは画面上には出てくるのですが
印刷ボタンを押すとプリンタのランプが一瞬点滅するのですが何も印刷されない現象が起きてしまいます。デバックの出力欄には「スレッド '<名前がありません>' (0x7b0) はコード 0 (0x0) で終了しました」のような出力があるのですが原因が分かりません。
印刷される方法を教えて頂けないでしょうか?よろしくお願いします。

ソース:
//印字行数のカウント
private static int pages=0;

//印刷ドキュメントの作成
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Font Fnt; //印刷に使用するフォント
int Row_lp; //印刷可能な行数
int Row_count=0;//テキストボックス内の行数
PointF Pnf; //印字位置
string[] Strs=null; //テキストボックス内のテキスト

//フォントオブジェクトの作成
Fnt = new Font("MS ゴシック",12);

//テキストボックス内の行数と値の取得
Strs = this.textBox1.Text.Split('\n');
foreach(string s in Strs)
{
if(!(s == String.Empty))
{
Row_count++;
}
}

//印刷可能な行数
Row_lp = e.MarginBounds.Height / (int)Fnt.GetHeight(e.Graphics);

//ドキュメントの作成
for(int i =0; i<Row_lp-1; i++)
{
//印刷データが無くなった時点で終了
//Strs[]はゼロから始まるため、カウントから1引く
if(pages > Row_count -1)
{
break;
}

Pnf = new PointF(e.MarginBounds.Left,Fnt.GetHeight(e.Graphics) * i + e.MarginBounds.Top);
e.Graphics.DrawString(Strs[pages],Fnt,Brushes.Black,Pnf);
pages++;
}

//次のページを印刷するか判断
if(pages < Row_count-1)
{
e.HasMorePages=true;
}
else
{
e.HasMorePages=false;
}

}//印刷ドキュメント終り

//印刷プレビュー
private void menuItem19_Click(object sender, System.EventArgs e)
{
pages=0;
printDocument1.DocumentName = "無題";
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();

}//印刷プレビュー終り

//印刷する こちらは正しく印刷されます
private void menuItem16_Click(object sender, System.EventArgs e)
{
pages=0;
printDocument1.DocumentName = "無題";
printDocument1.Print();
}//印刷終り
■No5401に返信(HOGEさんの記事)
> テキストボックス内の文字を印刷するプログラムを書いてみたのですが
> 印刷はうまくいくけどプレビューでは画面上には出てくるのですが
> 印刷ボタンを押すとプリンタのランプが一瞬点滅するのですが何も印刷されない現象が起きてしまいます。

次のニュースグループの投稿と同じ問題ではないでしょうか?

Re: PrintPreviewDialog Print Icon not printing
http://groups.google.co.jp/groups?hl=ja&lr=&ie=UTF-8&inlang=ja&selm=uIorWuCjDHA.1544%40tk2msftngp13.phx.gbl

DOBON.NET | プログラミング道 | プログラミング掲示板