2013-02-05 38 views
6

我正在添加一個圖標到我創建的窗體。當我通過VS2012運行該程序時,該圖標顯示在任務欄上。但是在發佈項目並安裝之後,該圖標顯示在窗體邊框中,但不顯示在任務欄中。我在這裏做錯了什麼?Windows窗體圖標不顯示在任務欄C#

我嘗試調整圖標大小。

+1

什麼是顯示在生產evnironemnt的任務欄上?它是「WinForms」應用程序的默認圖標嗎? –

+0

eMi解決了我的問題。感謝您的幫助! :)是的,這是默認的空白窗口圖標 – Lahib

+1

所以請接受eMi的答案。這樣每個人都知道你找到了解決問題的辦法。這有助於其他人有同樣的問題。 –

回答

14

您是否轉到了項目的屬性並在「應用程序」選項卡中設置了一個圖標(當然,這應該與用於主窗口的圖標相同,以避免混淆)?

+0

莫我沒有。謝謝你解決我的問題。 – Lahib

+0

歡迎您:) – eMi

1

你去表單的屬性和檢查線:顯示圖標=「真」?

0

您也可以嘗試在「notifyIcon屬性>圖標」區域添加圖標。

0

對話框/窗體圖標在任務欄上沒有顯示,直到它收到正確的鍵盤焦點。我不太確定什麼是「正確」的焦點,但是沒有製造窗戶的人都是。這個問題的缺點是缺少第一種形式激活事件(噢,它發生在常規基礎上)。當您隱藏所有窗體(在Windows應用程序中)並顯示下一個窗體時,可能會發生這種情況。

所以這不起作用:

newForm.Show() ; 
currentForm.Hide() ; //The newForm does not have the proper focus yet 

// actualy in this moment (I think) your application loose focus beacuse there is no application window. 


這可能做的伎倆:

newForm.Shown += newForm_Shown ; 
newForm.Show() ; 
void newForm_Shown (object sender , EventArgs e) 
{ 
    currentForm.Hide() ; 
} 

每當你可以,你應該表現出一個窗體隱藏以前的表格前,然後隱藏新表單顯示/激活事件期間的當前表單。 我知道的額外工作是做一些延遲的表單激活。在某種形式的激活方法上,你可以嘗試一些類似BeginInvoke的東西,但這是非常糟糕的主意。

相關問題