文書を印刷する前に印刷ダイアログボックスを表示して、印刷前に別のプリンタを選択することができます。印刷用のコードは次のとおりです。印刷する前にダイアログを表示する
private void button1_Click(object sender, EventArgs e)
{
try
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(PrintImage);
pd.Print();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, ToString());
}
}
void PrintImage(object o, PrintPageEventArgs e)
{
int x = SystemInformation.WorkingArea.X;
int y = SystemInformation.WorkingArea.Y;
int width = this.Width;
int height = this.Height;
Rectangle bounds = new Rectangle(x, y, width, height);
Bitmap img = new Bitmap(width, height);
this.DrawToBitmap(img, bounds);
Point p = new Point(100, 100);
e.Graphics.DrawImage(img, p);
}
このコードは現在のフォームを印刷できますか?
ボタンを押し、印刷ダイアログが開きませんが、メッセージボックスは、Printを表示するときキャンセルされました – user2257581
@ user2257581:私は今すぐテストして、動作し、新しいアプリケーションを作り、もう一度テストしてみてください。 – KF2
64ビット版Windowsと.NETのいくつかのバージョンでは、 'pdi.UseExDialog = true; 'ダイアログウィンドウが表示されます。詳細については、http://stackoverflow.com/q/6385844/202010を参照してください。 –