Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows窗体图标未显示在任务栏C中#_C#_.net_Winforms - Fatal编程技术网

C# Windows窗体图标未显示在任务栏C中#

C# Windows窗体图标未显示在任务栏C中#,c#,.net,winforms,C#,.net,Winforms,我正在为我创建的表单添加一个图标。当我通过VS2012运行程序时,图标会显示在任务栏上。但在发布并安装项目后,图标会显示在窗体边框中,但不会显示在任务栏中。我做错了什么 我已尝试调整图标的大小。是否转到项目的属性并在“应用程序”选项卡中设置图标(当然,这应该是主窗口使用的相同图标,以避免任何混淆)?是否转到窗体的属性并选中行:Show icon=“True”?在收到正确的键盘焦点之前,对话框/窗体图标不会出现在任务栏上。我不太确定什么是“合适的”焦点,但那些制作windows的人都不是。这个问题

我正在为我创建的表单添加一个图标。当我通过VS2012运行程序时,图标会显示在任务栏上。但在发布并安装项目后,图标会显示在窗体边框中,但不会显示在任务栏中。我做错了什么


我已尝试调整图标的大小。

是否转到项目的属性并在“应用程序”选项卡中设置图标(当然,这应该是主窗口使用的相同图标,以避免任何混淆)?

是否转到窗体的属性并选中行: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的回答。这样每个人都知道你找到了解决问题的方法。这有助于其他有同样问题的人。