当前位置: 代码迷 >> C# >> winfrom picturebox 死活都不进paint事件。解决办法
  详细解决方案

winfrom picturebox 死活都不进paint事件。解决办法

热度:318   发布时间:2016-05-05 03:42:48.0
winfrom picturebox 死活都不进paint事件。
我代码本来是想在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 中操作就可以了
  相关解决方案