execl窗体如何重新获得焦点呢?我们常常很关心这个问题,现在就让我们一起来看一看。
工具/原料
- execl
- 电脑
方法/步骤
- 1
当vba程序在弹出的模式窗口背后操作表格时,窗口就会明显的失去焦点,
- 2
我们可以有如下做法:
//找到窗口属性
LONG dwNewLong = GetWindowLong(hWndMain, GWL_EXSTYLE);
//隐藏窗口
dwNewLong |= WS_EX_TRANSPARENT | WS_EX_LAYERED;
SetWindowLong(hWndMain, GWL_EXSTYLE, dwNewLong);
//显示窗口
//dwNewLong ^= WS_EX_TRANSPARENT | WS_EX_LAYERED;
//SetWindowLong(hWndMain, GWL_EXSTYLE, dwNewLong);
- 3
上述原理是将hWndMain窗口屏蔽掉鼠标和键盘的响应,但是保留在桌面最底层,相当于嵌入了桌面,如果再次调用显示窗口的函数可将其激活
- 4
如何让窗口获得焦点?
在自己的form的deactive事件发生时用
- 5
而当C# winform 的窗体失去焦点之后,再次从新获得焦点事件失效是因为用Deactivate事件可以执行窗体被停用时的程序,此时窗体可能被最小化了,或者被其他文件夹挡住了,这个窗体并没有最小化。
- 6
另外还可以修改控件的tabindex属性,根据数字顺序依次排列就好了。至于是否要跳开某个控件,则是关闭那个控件的tabstop属性就好了(改了false则跳过)
- 7
以上就是execl窗体如何重新获得焦点的全部内容了,希望能对你们有所帮助,谢谢!!
END
注意事项
- 以上就是全部内容了!!
- 希望能对你们有所帮助,谢谢!!
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。