2010-05-18 2 views
0

MS의 코드를 print a form에서 사용하고 있지만 Show/ShowDialog()를 사용하여 양식을 표시해야하는 것처럼 보입니다.양식 인쇄

표시하고 싶지 않은 양식의 코드를 사용하려고합니다.

아이디어가 있으십니까?

답변

0

가장 간단한 방법은

this.Position=new Point(-100000,-100000); 

인쇄와 같은 화면 바깥 어딘가에을 열고 닫습니다하는 것입니다.

(여러 대의 모니터를 잊지 마세요. 큰 숫자를 사용하는 이유입니다.)

+0

StartPosition을 Manual로 설정하고 Location을 -100000으로 설정해야했습니다. 감사 – Jon

0

아마도 DrawToBitmap 방법을 사용할 수 있습니다.

+0

불행히도 아닙니다. – Jon

0

비교적 간단한 방법으로 양식의 데이터를 인쇄하려면이 방법을 시도하십시오. 양식에서 무언가를 인쇄해야 할 때이 방법을 사용합니다. 이것은 숨겨진 WebBrowser 컨트롤을 사용하고 꽤 잘 작동합니다.

죄송합니다,이 예제는 C++ 프로젝트에서 왔지만 멋지게 C#으로 변환됩니다.

private: System::Void printButton_Click(System::Object^ sender, System::EventArgs^ e) { 
     StringBuilder^ html = gcnew StringBuilder(); 

     html->Append("<html><head></head><body>"); 
     html->Append("<h1>Children Clocked In</h1>"); 

     html->Append("<table>"); 
     html->Append("<tr><td>Last Name</td><td>First Name</td><td>Classroom</td><td>Program</td><td>In Time</td></tr>"); 
     for each (DataGridViewRow^ row in children->SelectedRows) 
     { 
      html->AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td></tr>", 
       row->Cells[2]->Value->ToString(), 
       row->Cells[3]->Value->ToString(), 
       row->Cells[4]->Value->ToString(), 
       row->Cells[5]->Value->ToString(), 
       Convert::ToDateTime(row->Cells[6]->Value).ToString("h:mm tt")); 
     } 
     html->Append("</table>"); 

     html->Append("</body></html>"); 

     WebBrowser^ webBrowser = gcnew WebBrowser(); 
     webBrowser->Visible = false; 
     webBrowser->Parent = this; 
     webBrowser->DocumentCompleted += gcnew System::Windows::Forms::WebBrowserDocumentCompletedEventHandler(this, &FormChildrenClockedIn::webBrowser1_DocumentCompleted); 
     webBrowser->DocumentText = html->ToString(); 
    } 
private: System::Void webBrowser1_DocumentCompleted(System::Object^ sender, System::Windows::Forms::WebBrowserDocumentCompletedEventArgs^ e) { 
     ((WebBrowser^)sender)->ShowPrintPreviewDialog(); 
     delete (WebBrowser^)sender; 
    } 
관련 문제