2013-05-20 2 views
0

Создание опции печати с скриншотом формы, поскольку мне нужна была полная форма. Что приводит к диалоговому окну дополнительной печати для распечатки.Печать Создает диалоговое окно, и я не хочу, чтобы это

Вот код,

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e){ 
    var scr = Screen.FromPoint(this.Location); 
     using (var bmp = new Bitmap(scr.WorkingArea.Width, scr.WorkingArea.Height)) 
     { 
      using (var gr = Graphics.FromImage(bmp)) 
      { 
       gr.CopyFromScreen(new Point(scr.WorkingArea.Left, scr.WorkingArea.Top), Point.Empty, bmp.Size); 
      } 
      // Determine scaling 
      float scale = 1.0f; 
      scale = Math.Min(scale, (float)e.MarginBounds.Width/bmp.Width); 
      scale = Math.Min(scale, (float)e.MarginBounds.Height/bmp.Height); 
      // Set scaling and offset 
      e.Graphics.TranslateTransform(e.MarginBounds.Left + (e.MarginBounds.Width - bmp.Width * scale)/2, 
              e.MarginBounds.Top + (e.MarginBounds.Height - bmp.Height * scale)/2); 
      e.Graphics.ScaleTransform(scale, scale); 
      // And draw 
      e.Graphics.DrawImage(bmp, 0, 0); 

}

который отображает DialogBox, как показано ниже, Problem Area

Пожалуйста, помогите мне в этом вопросе ... Спасибо заранее ...

+1

Что вы используете для печати формы? – Milen

+0

@MilenPavlov PrintDocument Control. Пропустил эту строку: 'private void printDocument1_PrintPage (отправитель объекта, System.Drawing.Printing.PrintPageEventArgs e)' – Developer

ответ

2

Добавить printDocument1.PrintController = new StandardPrintController() прежде чем вы позвоните printDocument1.Print() По умолчанию я считаю, что он использует PrintControllerWithStatusDialog.

+0

Спасибо, что помог мне ... Его работа ... Большое спасибо ... – Developer

Смежные вопросы