2016-11-15 78 views
0

我正在開發一個Windows窗體應用程序。在這個應用程序中,我使用了一個包含許多標籤的面板。他們有拖放的屬性。用戶將拖放他想要的標籤。 最後,當他點擊打印按鈕,然後它必須打印。在Windows窗體應用程序中打印標籤

但我使用的是labels.I列表中的空白表。

private void printDocument1_PrintPage(object sender, 
System.Drawing.Printing.PrintPageEventArgs e) 
     { 
      List<Label> lbls = this.Controls.OfType<Label>().ToList(); 
      foreach (var lbl in lbls) 
      { 
       e.Graphics.DrawString(lbl.Text, 
      new Font(comboBox1.SelectedItem.ToString(), Int32.Parse(comboBox2.SelectedItem.ToString()), FontStyle.Bold), Brushes.Black, lbl.Left, lbl.Top); 
      } 

回答

0

我可以看到您可能遇到的兩個問題。

首先,設置一個斷點並檢查this.Controls.OfType<Label>().ToList()實際上是否有任何項目。如果沒有,那麼你可能需要改變它來尋找面板的子控件,而不是形式。

其次,您打印的頁面與您的表格有不同的尺寸,並且有邊距。 PrintPageEventArgs.MarginBounds會告訴你在哪裏和如何大的利潤。 PrintPageEventArgs.PageBounds會告訴你頁面有多大。確保你在邊緣畫畫。如果在邊緣之外繪製某些東西,則可能無法打印。如果它在頁面之外,那麼它絕對不會被打印。

+0

謝謝您的建議。我會盡力在 – sudhakar

+0

列表

+0

我已經使用上面的代碼。這會將所有標籤添加到面板外的列表中。但我想添加面板內的標籤 – sudhakar

相關問題