標籤打印,無法連續,出現了"参数无效"

eneru2008 2014-07-28 10:49:28
錯誤題示:
未处理 System.ArgumentException
Message=参数无效。
Source=System.Drawing

private void pd1_Printsmall(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
SetInvoiceData1(e.Graphics);

}
private void SetInvoiceData1(Graphics g)
{
//g.Dispose();
Font InvoiceFont = new Font("微软雅黑", 10, FontStyle.Bold);
SolidBrush GrayBrush = new SolidBrush(Color.Black );
g.DrawString(GetPrintStr1(), InvoiceFont, GrayBrush, 10, 10);
InvoiceFont.Dispose();
g.Dispose();
}
public string GetPrintStr1()
{
StringBuilder sb1 = new StringBuilder();

sb1.Append("日期:" + DateTime.Now.ToShortDateString() + "\r\n");
sb1.Append("单号:" + LabelStr + "\t" + "序:" + NoI.ToString() + "/" + NoI1 + "\r\n");

sb1.Append(FoodsName);

return sb1.ToString();
}

我做了一個連續打印的機制,第一次能打印,可,在第二打印時就在
g.DrawString(GetPrintStr1(), InvoiceFont, GrayBrush, 10, 10);
提示"参数无效"
請教高手們遇過此相同問題嗎,並如何解決的呢?
...全文
136 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
eneru2008 2014-07-28
  • 打赏
  • 举报
回复
回覆Z65443344 是可以連續打印沒錯,可是,全是空白的資料
於黾 2014-07-28
  • 打赏
  • 举报
回复
g.Dispose(); 打印了一次,g就释放了 把new的地方也放到方法里来,没打印一次就创建个g
於黾 2014-07-28
  • 打赏
  • 举报
回复
font,brush需要释放? 我做的程序没释放MS也没有问题.
平头哥哥 2014-07-28
  • 打赏
  • 举报
回复
平头哥哥 2014-07-28
  • 打赏
  • 举报
回复
font,brush,e.Graphics 依次释放。
平头哥哥 2014-07-28
  • 打赏
  • 举报
回复
引用 楼主 eneru2008 的回复:
錯誤題示: 未处理 System.ArgumentException Message=参数无效。 Source=System.Drawing

 private void pd1_Printsmall(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            SetInvoiceData1(e.Graphics);

        }
        private void SetInvoiceData1(Graphics g)
        {
            //g.Dispose();
            Font InvoiceFont = new Font("微软雅黑", 10, FontStyle.Bold);
            SolidBrush GrayBrush = new SolidBrush(Color.Black );
            g.DrawString(GetPrintStr1(), InvoiceFont, GrayBrush, 10, 10);
            InvoiceFont.Dispose();
            g.Dispose();
        }
        public string GetPrintStr1()
        {
            StringBuilder sb1 = new StringBuilder();
           
            sb1.Append("日期:" + DateTime.Now.ToShortDateString() + "\r\n");
            sb1.Append("单号:" + LabelStr + "\t" + "序:" + NoI.ToString() + "/" + NoI1 + "\r\n");
            
            sb1.Append(FoodsName);
  
            return sb1.ToString();
        }
我做了一個連續打印的機制,第一次能打印,可,在第二打印時就在 g.DrawString(GetPrintStr1(), InvoiceFont, GrayBrush, 10, 10); 提示"参数无效" 請教高手們遇過此相同問題嗎,並如何解決的呢?

  font.Dispose();
  brush.Dispose();
  g.Dispose();
於黾 2014-07-28
  • 打赏
  • 举报
回复
抱歉,看错. 你的g是从e.Graphics传进来的 ,所以不能new,Dispose();也没问题 到底提示哪个参数错?

110,536

社区成员

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

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

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