C# picturebox在form_load和最小化后内容无法显示
生活随笔
收集整理的這篇文章主要介紹了
C# picturebox在form_load和最小化后内容无法显示
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
用C#寫個(gè)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);}無論將該函數(shù)在Form_Load中調(diào)用還是在Paint事件中調(diào)用(窗口最小化后再出現(xiàn),paint2調(diào)用但是沒有畫出),都畫不出這條藍(lán)色的直線。
后來想了一下原因:這個(gè)方法是直接在picturebox上畫圖,以上兩種情況有一個(gè)共同點(diǎn),就是窗口還沒有顯示出來,這就導(dǎo)致方法調(diào)用后,后面又被其他方法覆蓋掉了,或者說窗口還不可見,畫不上。以上都有可能,我也只是猜測(cè)。
為了避免這個(gè)問題,我們不要直接在picturebox上畫,可以先畫在一張位圖上,然后將位圖賦值給picturebox.Image,這個(gè)屬性,這樣我們畫的東西就丟不了了,代碼修改為:
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;}?
總結(jié)
以上是生活随笔為你收集整理的C# picturebox在form_load和最小化后内容无法显示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python读awx文件_ansible
- 下一篇: CleanMyMac X4.11.2免费