2012-06-13 31 views
0

我有兩個狀態的按鈕;正常和報警。在正常的按鈕看起來像這樣:怪異的按鈕圖像行爲

button state: normal

,並同時在報警狀態,在GIF格式的紅色和橙色之間閃爍,就像這樣:

button state : in alarmbutton state: in alarm

下面

是一些片段決定按鈕的狀態:

if (blah blah == true) 
{ 
    ((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).Image = null; 
    //MessageBox.Show("Button " + device.deviceButtonNumber.ToString() + "is now flashing"); 
    ((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).Image = Properties.Resources.red_orange; 
} 
else 
{ 
    //MessageBox.Show("Button " + device.deviceButtonNumber.ToString() + "is now green"); 
    ((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).Image = null; 
    ((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).BackColor = Color.Green; 
} 

我在片段中設置片段的原因圖像爲null是因爲我認爲它可能是將圖像堆疊在彼此之上,但這似乎沒有解決它。

這個問題我已經是,經過查詢設備的同時,檢查按鈕的狀態....按鈕會隨機變化,看起來像這樣:

Weird state

我是有點卡住,爲什麼會發生這種情況,似乎在它變成buttonstate之前的時間量上有所不同:奇怪。任何人都知道爲什麼會發生這種情況?

+0

我們是在談論一個'System.Windows .Forms.Button'或者'System.Windows.Controls.Button'這裏? –

+0

他們是System.Windows.Forms.Button按鈕。 –

+1

的「末日的大紅色的X」是指你的控制打的異常,而試圖借鑑。你是否在用你的按鈕做任何自定義繪畫,或者簡單地切換圖像/背景顏色?你看到拋出任何異常嗎? – roken

回答

2

紅十字會表示有在繪製按鈕和紅十字會圖像的誤差爲button.I默認的錯誤形象。我認爲你在嵌入的資源問題,檢查是否在資源中存在的所有圖片如果那麼你可能不會創建一個圖像對象。

嘗試使用

((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).Image = new Image(Properties.Resources.red_orange);

創建從resource.Also圖像對象嘗試在資源,即使用圖像不:外部

+0

我只是去改變周圍的一些邏輯,然後我會盡力此修復程序。 –

+0

問題是什麼? – techno

+0

我認爲這是一起的......嗯,基本上它試圖不斷刷新自身線的東西,我想隨機它會嘗試刷新它的形象,它沒有裝完最後一個,所以它找不到它。或類似的東西。我改變了一些循環,並移動了一些變量,並停止了不正確的循環。然後它工作。 –