2017-04-05 95 views
-1

我想在圖片框中繪製圖像,並且圖像沒有繪出我的代碼出了什麼問題?謝謝帶圖形C的圖像繪製#

 Bitmap b; 
    private void Form1_Load(object sender, EventArgs e) 
    { 


     b = new Bitmap(1000, 100); 
     pictureBox1.Image = b; 
     Graphics g = pictureBox1.CreateGraphics(); 
     Rectangle rect = new Rectangle(20, 20, 70, 70); 
     Image earth = Image.FromFile("" + System.IO.Directory.GetCurrentDirectory() + @"\earth.png"); 
     g.DrawImage(earth,rect); 



    } 
+4

切勿使用CreateGraphics。使用PictureBox的Paint事件來獲取圖形對象。 – LarsTech

回答

0

Form.Load在任何東西被繪製到屏幕之前觸發。當第一次實際顯示Form時,PictureBox.OnPaint將被調用,並且控件將以其默認外觀呈現自身。要正確繪製到PictureBox,請處理其Paint事件,並使用提供的Graphics實例在事件處理程序中執行繪圖。每次重繪控件的任何部分時,都會觸發該事件,這將允許您繪製在控件失效時持續存在的圖形。有關更多信息,請參閱here

+0

謝謝,我修好了,所以要繪製圖像,我需要按下一些按鈕的Graphics.DrawImage劑量不適用於窗體加載。 – Mihai

+0

對不起,我不明白你的問題。在您的構造函數(或通過設計器)中,爲您的控件的「Paint」事件處理函數添加一個事件處理函數。然後,在處理程序方法中,執行繪圖。用戶不需要點擊一個按鈕或任何東西就可以工作。 – adv12

+0

好的,謝謝! – Mihai