![]() |
1
47
你试过了吗? Form.Activate ? 此代码似乎按您的需要执行,方法是将最小化后的窗体还原为正常大小,然后激活它以设置焦点:
警告:这很烦人!如果它只是一个你个人使用的应用程序,如你所说,也许你可以接受它。:) |
![]() |
2
10
注意事项。以下是我抄袭最多的 voted answer 在一个 linked question 作为与此相同的副本关闭。这个答案是我发现的唯一一个解决这个问题的纯C答案。
它总是把所需的窗口带到所有其他窗口的前面。 |
![]() |
3
7
|
![]() |
4
5
你可以设定
|
![]() |
5
2
经过反复的试验和错误之后,我得到了这个代码。 这是测试过的。 焦点传递到窗体之后,将在窗体上调用bringtofront方法。这使得它出现在前面。
|
![]() |
6
1
经过几次尝试,我发现了工作组合:
|
![]() |
7
0
设置
|
![]() |
8
0
设置
使用
|
![]() |
9
0
实际上,只要打电话
在你
在你
即使您的表单正由另一个进程启动(例如:在另一个线程中运行的启动屏幕表单),这也会起作用。 |
![]() |
10
0
我也有类似的问题
是一个非常令人满意的解决方案。
但是它仍然不能保证形式会有焦点,因为
|
![]() |
11
0
如另一个响应中所述,实现此目的的一种方法(当然是unelegant)是使用user32.dll并调用本机方法,如果我们使用一些来自窗口调用方的未链接进程或线程,这可能是有效的,这些进程或线程在主调用方中设置为后台窗口(例如:对于我们想要最顶层的窗口,始终位于顶部)。 这是部分复制的,但只是为了方便:
为了完整起见,我添加了Windows SDK中可用常量的大多数引用 |
![]() |
12
-1
而不是使用windowstate minimize或topmost=false等… 我有一个WinForm应用程序…它启动了一个自动化程序——我希望在执行自动化程序时应用程序最小化,然后在完成自动化程序后再次显示。 这很简单——只需在其他进程/线程/任何正在运行的对象运行时使窗体不可见即可。
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 7 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 7 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 7 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 7 月前 |