C# picturebox在form_load和最小化后内容无法显示
生活随笔
收集整理的這篇文章主要介紹了
C# picturebox在form_load和最小化后内容无法显示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用C#寫個picturebox,代碼如下:
private void paint2(){Graphics g = pictureBox.CreateGraphics();g.Clear(Color.White);Point p1 = new Point(10,0);Point p2 = new Point(10, 20);g.DrawLine(new Pen(Color.Blue, 2), p2, p1);}無論將該函數在Form_Load中調用還是在Paint事件中調用(窗口最小化后再出現,paint2調用但是沒有畫出),都畫不出這條藍色的直線。
后來想了一下原因:這個方法是直接在picturebox上畫圖,以上兩種情況有一個共同點,就是窗口還沒有顯示出來,這就導致方法調用后,后面又被其他方法覆蓋掉了,或者說窗口還不可見,畫不上。以上都有可能,我也只是猜測。
為了避免這個問題,我們不要直接在picturebox上畫,可以先畫在一張位圖上,然后將位圖賦值給picturebox.Image,這個屬性,這樣我們畫的東西就丟不了了,代碼修改為:
private void paint2(){Bitmap b = new Bitmap(this.pictureBox.Width, this.pictureBox.Height);Graphics g = Graphics.FromImage((System.Drawing.Image)b);Point p1 = new Point(10,0);Point p2 = new Point(10, 20);g.DrawLine(new Pen(Color.Blue, 2), p2, p1);this.pictureBox.Image = b;}?
總結
以上是生活随笔為你收集整理的C# picturebox在form_load和最小化后内容无法显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python读awx文件_ansible
- 下一篇: c# char unsigned_dll