none
在TabControl裡面的page用GDI+圖出不來(急) RRS feed

  • 問題

  • 請問一下,現在我程式裡的TabControl的page1是放讓別人輸入數值,

    然後page2是利用輸入的數值輸出圖形,可是每次執行我page2的picturebox裡的畫布

    都一片空白,程式碼都trace過了!  

    之後我打了小程式去測發現,每當執行後TabControl的page有換頁,圖就會消失

    有甚麼方法可以讓我換頁後,圖部會消失ㄧ直都在!!
    2009年11月26日 下午 03:21

解答

  • 回ricoisme大,我是在button_click裡面處理pictureBox1的圖形!!


    在paint事件中處理即可

    sample

    private void button1_Click(object sender, EventArgs e)
            {
                 textBox1.Text = "test";
                pictureBox1.Paint += new PaintEventHandler(this.pictureBox1_Paint);//委派事件
            }

    private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
            {          
                Graphics g = e.Graphics;          
                g.DrawString(textBox1.Text, new Font("Arial", 20), Brushes.Red,10,10);//show "test" in picturebox1
            }
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    • 已標示為解答 2009年11月27日 上午 07:13
    2009年11月26日 下午 10:23

所有回覆

  • hi
    你是否在page2的pictureBox1_Paint事件中處理圖形??

    參考Control.Paint
    http://msdn.microsoft.com/zh-tw/library/system.windows.forms.control.paint(VS.80).aspx


    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年11月26日 下午 03:45
  • http://social.msdn.microsoft.com/Search/zh-TW/?Refinement=112&query=TabPage%20Paint
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2009年11月26日 下午 04:04
  • 回ricoisme大,我是在button_click裡面處理pictureBox1的圖形!!

    2009年11月26日 下午 04:34
  • 不好意思 心冷 ,我看太懂要怎麼做@@

    我是在page1給使用者輸入數值,案下button後

    page2利用輸入數值去畫圖,可是執行後,只要使用者一切換page圖就會不見!!


    2009年11月26日 下午 04:53
  • 回ricoisme大,我是在button_click裡面處理pictureBox1的圖形!!


    在paint事件中處理即可

    sample

    private void button1_Click(object sender, EventArgs e)
            {
                 textBox1.Text = "test";
                pictureBox1.Paint += new PaintEventHandler(this.pictureBox1_Paint);//委派事件
            }

    private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
            {          
                Graphics g = e.Graphics;          
                g.DrawString(textBox1.Text, new Font("Arial", 20), Brushes.Red,10,10);//show "test" in picturebox1
            }
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    • 已標示為解答 2009年11月27日 上午 07:13
    2009年11月26日 下午 10:23
  • 搜尋結果就兩篇還看不懂?
    以下面這篇來說,就是先在記憶體中畫圖,畫完指給 PictureBox 即可。這篇跟你的需求一模一樣...

    切換TabPage後,原先畫在Graphic的圓點不見了..

    但是我的環境不是在Form上,而是希望在TabPage上的PictureBox內,MouseDown的時候點出一顆圓點,所以我的paint方法,應該要下在哪一個類別上? 我現在是下在...Handles PictureBox.MouseDown 這邊,這樣我按下滑鼠的時候才能產生一個圓點。
    http://social.msdn.microsoft.com/Forums/zh-TW/232/thread/fd813edc-013a-4584-8ee5-55f5ab97a033

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2009年11月27日 上午 01:10
  • 很謝謝2位的幫忙,我現在是用ricoisme的方式做了

    之後我又再去用另一位大的方式也成功了!!  (謝)
    2009年11月27日 上午 07:13