2016-11-15 85 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

相关问题