C# 打印文档

C# 打印文档,c#,printing,C#,Printing,我想打印我的文本框,这是我的代码: private void MenuItemPrint() { if (FileName != "") { PrintDocument document = new PrintDocument(); document.PrinterSettings.PrintFileName = FileName; document.Print(); } }

我想打印我的
文本框
,这是我的代码:

private void MenuItemPrint()
{
        if (FileName != "")
        {
            PrintDocument document = new PrintDocument();
            document.PrinterSettings.PrintFileName = FileName;
            document.Print();
        }
}
private void MenuItemPrint()
 {
   if(!string.IsNullOrEmpty(FileName.Trim())
   {
    PrintDialog printdg = new PrintDialog();

    if (printdg.ShowDialog() == DialogResult.OK)
    {
        PrintDocument pd = new PrintDocument();
        pd.PrinterSettings = printdg.PrinterSettings;
        pd.PrintPage += PrintPage;
        pd.Print();
        pd.Dispose();
     }
  }
}
private void PrintPage(object o, PrintPageEventArgs e)
{
   e.Graphics.DrawString(FileName, new Font("Arial", 20), Brushes.Black, 10, 25);
}
但它不起作用。我该怎么办?

试试这个:

private void MenuItemPrint()
{
   if (!FileName.Trim().Equals(""))
   {                        
     using(PrintDocument pd = new PrintDocument())
     {
        using(PrintDialog printDialog=new PrintDialog())
        {
          if(printDialog.ShowDialog()==DialogResult.Yes)
          {
          pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);                        
          pd.Print();
          }
         }
      }
    }
 }
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
  ev.Graphics.DrawString(FileName, new Font("Arial", 10), Brushes.Black,
                       ev.MarginBounds.Left, 0, new StringFormat());
 }
private void MenuItemPrint()
 {
   if(!string.IsNullOrEmpty(FileName.Trim())
   {
    PrintDialog printdg = new PrintDialog();

    if (printdg.ShowDialog() == DialogResult.OK)
    {
        PrintDocument pd = new PrintDocument();
        pd.PrinterSettings = printdg.PrinterSettings;
        pd.PrintPage += PrintPage;
        pd.Print();
        pd.Dispose();
     }
  }
}
private void PrintPage(object o, PrintPageEventArgs e)
{
   e.Graphics.DrawString(FileName, new Font("Arial", 20), Brushes.Black, 10, 25);
}

您可以使用以下代码使用所选打印机打印文本框的内容:

private void PrintTextBoxContent()
{
    #region Printer Selection
    PrintDialog printDlg = new PrintDialog();
    #endregion

    #region Create Document
    PrintDocument printDoc = new PrintDocument();
    printDoc.DocumentName = "Print Document";
    printDoc.PrintPage += printDoc_PrintPage;
    printDlg.Document = printDoc;
    #endregion

    if(printDlg.ShowDialog() == DialogResult.OK)
       printDoc.Print();
}

void printDoc_PrintPage(object sender, PrintPageEventArgs e)
{
    e.Graphics.DrawString(this.textBox1.Text, this.textBox1.Font, Brushes.Black, 10, 25);
}
private void MenuItemPrint()
 {
   if(!string.IsNullOrEmpty(FileName.Trim())
   {
    PrintDialog printdg = new PrintDialog();

    if (printdg.ShowDialog() == DialogResult.OK)
    {
        PrintDocument pd = new PrintDocument();
        pd.PrinterSettings = printdg.PrinterSettings;
        pd.PrintPage += PrintPage;
        pd.Print();
        pd.Dispose();
     }
  }
}
private void PrintPage(object o, PrintPageEventArgs e)
{
   e.Graphics.DrawString(FileName, new Font("Arial", 20), Brushes.Black, 10, 25);
}

只需尝试以下代码

private void MenuItemPrint()
 {
   if(!string.IsNullOrEmpty(FileName.Trim())
   {
    PrintDialog printdg = new PrintDialog();

    if (printdg.ShowDialog() == DialogResult.OK)
    {
        PrintDocument pd = new PrintDocument();
        pd.PrinterSettings = printdg.PrinterSettings;
        pd.PrintPage += PrintPage;
        pd.Print();
        pd.Dispose();
     }
  }
}
private void PrintPage(object o, PrintPageEventArgs e)
{
   e.Graphics.DrawString(FileName, new Font("Arial", 20), Brushes.Black, 10, 25);
}

您应该告诉我它以什么方式不起作用。@Melody:您遇到了什么错误?当我单击打印时不会发生。您的文件名是文本框控件吗?使用PrintDocument,您必须注册事件PrintPage和内部用于打印的实施代码。看,有没有更简短的代码?我只想打印文本框的内容。我认为没有比这个IMO更短的代码了。因为您必须编写语句来初始化printDocument,注册PrintPage事件,最后使用drawstring.actually Trim()打印字符串函数将删除文本框中通常看不到的前导空格和尾随空格。如果在比较之前不修剪值,则(“==”)的计算结果为false。您现在可以打印吗?欢迎:)我很乐意帮助您。