2011-08-01 89 views
0

我有兩個面板:一個始終可見,另一個稍後聲明並屬於第一個面板: 「panel1.Controls.Add(this.Panel2);」C#使用Graphics在面板內的面板上繪圖。第一個面板比第二個面板更大

整個程序總是有2個文本框,7個用作按鈕的圖片框,3個標籤和1個面板(只要程序開始運行,它們就會被聲明)。

在聲明第二個面板後,會激活一個繪圖功能。該功能在第二個面板上繪製。

如果Panel2比Panel1更高或更寬(Panel2變得部分可見),第一次調用繪圖函數時,繪圖函數完成後第二個面板變爲空白。我必須重新調整窗口的大小,或者爲了讓我的繪圖返回(在許多情況下繪圖函數被調用)。如果Panel2在各方面都小於Panel1,則問題不會發生。

Panel2正在操作的順序是: 聲明Panel2; 調整Panel2的屬性; 將Panel2添加到Panel1; 在Panel2上繪圖; 其他Panel2相關的東西。

起初我在Panel1中使用了按鈕和一個PictureBox。只有當按鈕沒有使用它們的默認外觀時(不管PictureBox的大小如何),這個問題纔會發生。後來,我改變了PictureBox的面板和按鈕與PictureBoxes(我想製作自定義按鈕)。在那次改變之後,我再次面對這個問題。

代碼很大,我不確定是否有必要。我肯定有代碼算法的問題。

回答

2

你畫錯了。

您需要在Paint處理程序中繪製內容,以便在重新繪製控件時重新繪製內容。
你不應該畫control.CreateGraphics()

+0

謝謝!謝謝!謝謝!謝謝! 這解決了這個問題。我希望我不會遇到任何其他油漆問題。 – AlexSavAlexandrov

相關問題