登录到我们的ClickOnce应用程序后,任务栏中的图标消失。
一些细节:这个应用程序,我们称为ThisApp,最初是用.NET 2.0(VB)编写的,并且已经向前迁移到.NET 4.0,但是这个问题一直存在。在Windows 7中(我认为它在Vista和XP中也做同样的事情...),其行为如下:
当您转到“开始”>“所有程序”>“ ThisApp”并首先启动它时,该图标将按应有的方式出现在任务栏中。首先,您会看到一个登录屏幕。如果输入正确的凭据,则登录屏幕将替换为应用程序的实际UI,但同时,任务栏中的图标会消失。您仍然可以看到该应用程序的UI屏幕,但是任务栏图标消失了。
在这一点上,如果您碰巧将应用程序最小化,那么除了再次进入>所有程序> ThisApp,实际上没有办法将其恢复,这会给您一个提示,指出“ ThisApp的实例已在运行” ,但至少到那时它会将图标恢复到任务栏。
如果刚登录后图标丢失,您应该碰巧单击另一个窗口并将ThisApp发送到后台,则图标仍然丢失。但是,如果您随后单击ThisApp的窗口并将其放回最前面,则该图标突然返回到任务栏。
我已经完成了调试过程中的初始登录过程。我看过跟踪日志。我看过Windows事件日志。我已经花了一些时间在Google上。我找不到任何线索,为什么会发生这种情况。它已经进行了很多年,从来没有一个问题足以保证任何开发人员的时间。但是现在(最后?)一个足够大的客户抱怨这一点,我们需要最终弄清楚这一点。我发现了许多有关ClickOne应用程序及其图标的问题,但找不到解决该特定问题的问题。
有人看过这样的东西吗?曾经处理过吗?有任何想法吗?
谢谢!!!
编辑-更多信息:
我对此仍然感到困惑。这是我能够弄清楚的:
第一的:
首次启动该应用程序时,将显示一个初始页面,同时该应用程序检查配置,测试与数据库的连接,加载用户缓存的数据等。当初始页面可见时,在任务栏中显示的图标就很好了。初始设置完成后,初始页面将被隐藏。此时,任务栏图标消失。
第二:
隐藏初始页面后,将立即初始化并显示登录表单。当显示时,该图标再次在任务栏中变为可见。它会一直保留在那里,直到用户通过验证并关闭表单为止,此时该图标再次从任务栏中消失。
第三:
关闭登录表单后,将在完成更多配置后再次显示启动页面,并在应用程序(客户端)和服务器之间进行同步。显示初始页面时,任务栏图标会返回。同步完成后,启动页面将被隐藏,任务栏图标再次消失。
第四:
一旦第二个初始页面被隐藏,我们便显示主窗体。此时,我希望任务栏图标再次显示。但是...事实并非如此。我一直在比较“登录”表单和“主要”表单的属性,以使它们变得可见,以查看是否可以发现任何可能解释为什么一个显示图标而另一个不显示图标的差异。我没有看到任何明显的东西。
代码:
下面是创建和加载“登录”表单的代码的屏幕截图,其中有一个箭头指向该表单可见的行,并且图标显示在任务栏中。
下面是创建和加载Main窗体的代码的屏幕截图,其中的箭头指向我将期望任务栏图标出现的行。表单本身确实出现在此行,但图标没有出现。
还有两件事:
任何想法都欢迎!!!
好吧,我不知道这里到底发生了什么。但是我发现暂时必须解决的问题...
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
' For some reason, the icon does not show in the taskbar when this form first shows. The following is a workaround...
Visible = False
Visible = True
' End icon workaround
InitTabs()
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句