Печать не работает в приложении Windows Forms для Visual Studio 2008 - PullRequest
0 голосов
/ 06 января 2012

Я попытался напечатать красный прямоугольник в Visual Studio C ++ 2008 с использованием компонента PrintDocument, вот код, который я использовал:

private:
   void printDocument1_PrintPage(System::Object ^ sender,
      System::Drawing::Printing::PrintPageEventArgs ^ e)
   {
      e->Graphics->FillRectangle(Brushes::Red,
         Rectangle(500, 500, 500, 500));
   }
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
         printDocument1->PrintPage += gcnew
         System::Drawing::Printing::PrintPageEventHandler
   (this, &Form1::printDocument1_PrintPage);
         }

У меня есть принтер, и он работает, если вам интересно. Приведенный выше код должен печатать красный прямоугольник при нажатии кнопки, однако он не работает. Что я делаю не так?

1 Ответ

1 голос
/ 06 января 2012

Обработчик события Click неправильный, каждый щелчок добавляет другой обработчик события к PrintPage. Это назначение принадлежит конструктору формы. Это не работает, потому что вы забыли важный звонок, на самом деле вы не просили его напечатать. Исправлено:

    System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        printDocument1->Print();
    }

Используйте PrintPreviewDialog для сохранения дерева.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...