2012-06-25 25 views
1

我有一堆UserControl s一個在其他人和他們的頂部有一個面板和一些其他控制。我想要做的是改變面板的背景顏色。無法更改輸入事件Panel.BackColor事件

如果我從設計師設置顏色,顏色顯示正確。

如果我通過代碼設置它,它不會改變。

在同一點上,我設置面板的背景顏色,我也設置其父BorderColor哪些更改正確。

改變顏色後,我在面板上試過UpdateInvalidate,但沒有發生任何事情。 面板的容器有重點,不知道是否有幫助。

什麼阻止面板改變顏色?

Color highlightedColor = Color.Blue; 
panelControl.BorderColor = highlightedColor; 
indicatorPanel.BackColor = highlightedColor; 

儘管我使用DevExpress,我也嘗試過使用winforms的面板。同樣的行爲。

編輯

有更多的,我不能改變。剛剛嘗試了一個標籤的背景顏色。來自代碼的設計者更改沒有。

代碼在Enter事件

EDIT2

問題依賴於我所說的代碼的事件運行。我嘗試使用一個按鈕,它的工作原理。因此,在Enter事件上做些事情時肯定會出現問題。

+1

此代碼在哪裏運行?在什麼事件裏面?如果你把它放在按鈕點擊事件中,它是否工作? –

+0

不錯的建議。我嘗試了一個按鈕,它的工作原理!任何想法爲什麼它不適用於Enter事件? – Odys

+0

某些事件在某些事件中無法更改,例如試圖在其Load事件中隱藏表單不會真正起作用。爲了克服這個問題,我總是使用一個不打擾「尋找」真正「解決方案的定時器。它的工作原理,但不是很優雅.. –

回答

1

解決方法是在UserControl本身上調用Update,而不是我改變顏色的容器。

+0

有點奇怪,但很高興你找到真正的解決方案。 :) –

+0

不是一個解決方案,只是一個創可貼。不要在UI代碼中編寫循環,繪畫只發生在UI線程空閒時。如果你繼續使用這樣的樂隊幫助,你會遇到更多麻煩。 –