在windows窗体应用程序中打印标签

本文关键字:打印 标签 应用程序 windows 窗体 | 更新日期: 2023-09-27 18:17:51

我正在开发一个windows窗体应用程序。在这个应用程序中,我使用一个面板,其中包含许多标签。它们具有拖放的特性。用户可以在需要的地方拖放标签。最后,当他点击打印按钮时,它必须打印。

但是我使用的是标签列表。我得到一张白纸。

 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);
            }

在windows窗体应用程序中打印标签

我可以看出你可能有两个问题。

首先,设置一个断点并检查this.Controls.OfType<Label>().ToList()中是否有任何项。如果没有,那么您可能需要将其更改为查找面板的子控件,而不是表单的子控件。

其次,你要打印的页面与你的表单大小不同,而且它有页边距。PrintPageEventArgs.MarginBounds会告诉你空格的位置和大小。PrintPageEventArgs.PageBounds会告诉你页面有多大。确保你在页边距内画。如果在页边空白处画了什么,可能就印不出来了。如果它在页面外,那么它绝对不会被打印。