C#中Datagridview打印预览为什么是空白,第一次接触这个,请各位帮助

问题遇到的现象和发生背景

C#中Datagridview打印预览为什么是空白

问题相关代码,请勿粘贴截图
    PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
    PrintDocument printDocument2 = new PrintDocument();
    DataGridViewPrinter printer1 = null;
    PrintDocument printDocument1 = new PrintDocument();
    private void button3_Click(object sender, EventArgs e)
{
       if (System.Windows.Forms.MessageBox.Show("是否要预览打印文档", "打印预览",System.Windows.Forms.MessageBoxButtons.YesNo) == DialogResult.Yes)
        {
           
            printPreviewDialog1.UseAntiAlias = true;
            printPreviewDialog1.Document = this.printDocument2;

            printer1 = new DataGridViewPrinter(dataGridView1, printDocument2, true, true, "表头1", "表头2", new Font("宋体", 30, FontStyle.Regular),new Font("宋体", 30, FontStyle.Regular), Color.Black);
            printPreviewDialog1.ShowDialog();
        }
        else
        {
            printDocument2.Print();//不预览,直接打印
        }
    }
    private void printDocument2_PrintPage(object sender, PrintPageEventArgs e)
    {

        //实现在预览时的分页
        if (printer1.DrawDataGridView(e.Graphics))
            e.HasMorePages = true;
        else
            e.HasMorePages = false;

    }
运行结果及报错内容

img

img

我的解答思路和尝试过的方法
我想要达到的结果

应该是if里的内容为假,不执行展示内容的代码,if里改成ture试试