C# Windows窗体图标未显示在任务栏C中#
我正在为我创建的表单添加一个图标。当我通过VS2012运行程序时,图标会显示在任务栏上。但在发布并安装项目后,图标会显示在窗体边框中,但不会显示在任务栏中。我做错了什么C# Windows窗体图标未显示在任务栏C中#,c#,.net,winforms,C#,.net,Winforms,我正在为我创建的表单添加一个图标。当我通过VS2012运行程序时,图标会显示在任务栏上。但在发布并安装项目后,图标会显示在窗体边框中,但不会显示在任务栏中。我做错了什么 我已尝试调整图标的大小。是否转到项目的属性并在“应用程序”选项卡中设置图标(当然,这应该是主窗口使用的相同图标,以避免任何混淆)?是否转到窗体的属性并选中行:Show icon=“True”?在收到正确的键盘焦点之前,对话框/窗体图标不会出现在任务栏上。我不太确定什么是“合适的”焦点,但那些制作windows的人都不是。这个问题
我已尝试调整图标的大小。是否转到项目的属性并在“应用程序”选项卡中设置图标(当然,这应该是主窗口使用的相同图标,以避免任何混淆)?是否转到窗体的属性并选中行:Show icon=“True”?在收到正确的键盘焦点之前,对话框/窗体图标不会出现在任务栏上。我不太确定什么是“合适的”焦点,但那些制作windows的人都不是。这个问题通常是因为缺少第一个表单激活事件(哦,是的,它经常发生)。当您隐藏所有表单(在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的表单激活方法,但这通常不是一个好主意。生产evnironemnt的任务栏上显示了什么?它是
WinForms
应用程序的默认图标吗?eMi解决了我的问题。谢谢你的帮助!:)是的,这是默认的空白窗口iconSo请接受eMi的回答。这样每个人都知道你找到了解决问题的方法。这有助于其他有同样问题的人。