我代码本来是想在button下循环重绘保存到Image数组内然后在批量打印,代码如下
for (int a = 0; a < dt.Rows.Count; a++)
{
names = dt.Rows[a]["brxm"].ToString();
Image pic = Image.FromFile(@"C:\A4.jpg");
this.pictureBox1.Width = pic.Width;
this.pictureBox1.Height = pic.Height;
this.pictureBox1.Image = pic;
this.pictureBox1.Invalidate();
imgsss.Add(this.pictureBox1.Image);
}
本打算在一张A4大小的空白图片上写几个字,比如
e.Graphics.DrawString(names, new Font("黑体", 20), Brushes.Black, new PointF(250, 950));
可Paint方法死活都不进,我试着用Refresh,Invalidate放在任何一个案件或者Load反正各种地方它都不会进入,我另外一个窗体单张这样生成图片是没问题的。
求救啊啊啊啊啊
------解决思路----------------------
说下你的解决方法方便后面的人学习...
------解决思路----------------------
完全可以把 paint 内的代码搬出来, 单独对图片进行绘制, Invalidate 方法只是通知系统需要重绘,
是否真的绘制是由操作系统调度的, 肯定要判断控件是否可见的.
------解决思路----------------------
既然是不可见的,只在 Bitmap 中操作就可以了