c# – 关于应用程序没有在XPW2K3中获得焦点的问题

c# – 关于应用程序没有在XPW2K3中获得焦点的问题,第1张

概述我有一个用.NET编写的应用程序.以前的版本没有问题:双击图标或从命令行运行它,当它启动时,它是主窗口并具有您期望的焦点. 最新版本在主窗口之前显示一个启动画面,现在启动画面到达前景,但主画面并不总是在主窗口结束.有时确实如此,有时却没有. (从命令行启动时,它总是不会).当主窗口未到达前景并获得焦点时,任务栏图标显示为稳定的橙色. 我在网上看到很多关于MS如何添加一个工具以防止应用程序从其他人那 我有一个用.NET编写的应用程序.以前的版本没有问题:双击图标或从命令行运行它,当它启动时,它是主窗口并具有您期望的焦点.

最新版本在主窗口之前显示一个启动画面,现在启动画面到达前景,但主画面并不总是在主窗口结束.有时确实如此,有时却没有. (从命令行启动时,它总是不会).当主窗口未到达前景并获得焦点时,任务栏图标显示为稳定的橙色.

我在网上看到很多关于MS如何添加一个工具以防止应用程序从其他人那里窃取焦点,以ForegroundLockTimeout注册表设置和相关设置为中心,但上面描述的不同版本的行为发生在同一台机器上.

在最终创建时,我尝试在主窗体中调用Activate,以及SetForegrounDWindow,都无济于事.

任何帮助表示赞赏.

解决方法 您可能应该将启动画面设置焦点设置为主应用程序窗口,因为它将消失.

至于Window知道您的启动画面是您的应用程序,因为它是在该过程开始后显示的第一个顶层窗口.因此,该窗口获得焦点,但任何试图抓住同一个应用程序启动(图标点击/运行命令)的其他窗口被认为是一个焦点小偷.

您可以通过让Window认为有权将焦点转移到新窗口的窗口来解决这个问题.

因此,在飞溅被破坏之前,你应该在主窗口上溅起SetFocus.如果你破坏焦点窗口,那么焦点就无处可去,这可能是您应用中当前正在发生的事情.

总结

以上是内存溢出为你收集整理的c# – 关于应用程序没有在XP / W2K3中获得焦点的问题全部内容,希望文章能够帮你解决c# – 关于应用程序没有在XP / W2K3中获得焦点的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1215575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存