我正在向我创建的表单添加一个图标。当我通过 VS2012 运行程序时,图标会出现在任务栏上。但在发布项目并安装后,图标会显示在表单边框中,但不会显示在任务栏中。我在这里做错了什么?
我试过调整图标的大小。
您是否转到项目的属性并在“应用程序”选项卡中设置了一个图标(这当然应该与用于主窗口的图标相同以避免任何混淆)?
您是否转到表单的属性并检查行:显示图标 =“真”?
对话框/表单图标在获得正确的键盘焦点之前不会出现在任务栏上。我不太确定什么是“正确”的焦点,但那些制作窗户的人都不是。这个问题通常伴随着缺少第一个表单激活事件(哦,是的,它经常发生)。当您隐藏所有表单(在 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 的方法,但这通常是个坏主意。