关于PrintDocument点击打印预览再按打印之后出现的问题,关闭了打印预览界面之后,再按直接打印就出现如图报错

sinat_29539693 2019-01-09 04:36:41
public Form1()
{
InitializeComponent();
}


public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
//源的定义
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 12.0;HDR=NO;IMEX=1';";
string strExcel = "select * from [sheet1$]";

DataSet ds = new DataSet();
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();

//适配到数据源
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);

conn.Close();
return ds.Tables[strSheetName];
}

DataTable myT = ExcelToDataTable("D:/lb/lb.xlsx", "sheet1");

int i = 1;
private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e)
{

Brush printcolor = Brushes.Black;

string name= myT.Rows[i][0].ToString();//

e.Graphics.DrawString(name, new Font(new FontFamily("宋体"), 20), printcolor, 200, 205);


i++;
e.HasMorePages = true;

if (i >= myT.Rows.Count - 1)
{
e.HasMorePages = false;
}

}

private void button1_Click(object sender, EventArgs e) //打印预览
{
//将写好的格式给打印预览控件以便预览
printPreviewDialog1.Document = printDocument1;

printDocument1.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage);

printPreviewDialog1.ShowDialog();
}

private void button2_Click(object sender, EventArgs e)
{
printDocument1.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage);//直接打印
printDocument1.Print();
}







关闭了打印预览界面之后,再按直接打印就出现如图报错,请问如何解决?
...全文
278 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你应该调试变量。
xuzuning 2019-01-09
  • 打赏
  • 举报
回复
页计数器 i 没有复位

private void button2_Click(object sender, EventArgs e)
{
i = 0;
printDocument1.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage);//直接打印
printDocument1.Print();
}

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧