我有一个C#winforms应用程序在另一个程序中运行宏.另一个程序将不断弹出窗口,并且通常会让事情看起来,因为缺乏一个更好的词,是疯狂的.我想实现一个取消按钮来阻止进程运行,但我似乎无法让窗口保持在最顶层.我如何在C#中执行此操作?
编辑:我试过TopMost = true; ,但另一个程序不断在顶部弹出自己的窗口.有没有办法每隔n毫秒将窗口发送到顶部?
编辑:我解决这个问题的方法是添加一个系统托盘图标,通过双击取消该过程.系统托盘图标不会被遮盖.谢谢所有回复的人.我读了一篇关于为什么没有"超级顶级"窗口的文章......它在逻辑上不起作用.
我正在构建一个应用程序给另一个应用程序mainWindowhandle它收集有关窗口状态的信息.我收集有关子窗口的信息没有问题,但我无法访问应用程序的其他打开窗口甚至菜单.有没有办法获取应用程序的所有窗口句柄?
我的WPF应用程序中的Splashscreen/Loading-Window设置为Topmost ="True".现在这个窗口在所有其他窗口的顶部,即使你切换到另一个应用程序(因为加载将需要一些时间).我不想要这种行为.
如果我将Topmost ="False"设置为最顶层的窗口.但是如果您在使用其他应用程序后切换回我的应用程序,我的客户有时也不会意识到Loading-Windows仍在运行.该应用程序似乎没有响应,因为后台的加载窗口仍然是活动窗口,它是模态的.
我希望装载窗口位于最顶层,但前提是我的应用程序位于前台.如果切换到另一个程序,窗口应该消失,并在切换回时最重新出现.
我想在我的C#Windows窗体应用程序中显示一个状态窗口,该窗口会在应用程序等待获取锁定时通知用户.这是一个应用程序定义的东西,但是,窗口应该是可见的并且始终保持在我的应用程序的所有其他窗口之上,即使用户单击另一个窗口(例如它后面的较大的主窗口).
它不能是模态的(因此不能使用ShowDialog())因为应用程序需要在后台继续尝试并且如果最终可以获取锁定则自动关闭窗口,并且它实际上不应该是整个窗口的最顶层站(即在该终端会话中运行的所有应用程序).
我知道Form.TopMost属性,但它只能带来并保持一个窗口高于所有其他窗口,甚至是其他应用程序的窗口.这显然不是我想要的.
我知道这是可能的,我以前在其他应用程序中已经看过很多次了.我只是不知道怎么做.