广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    execl窗体如何重新获得焦点呢?

    来源:网络收集  点击:  时间:2024-04-11
    【导读】:
    execl窗体如何重新获得焦点呢?我们常常很关心这个问题,现在就让我们一起来看一看。工具/原料moreexecl电脑方法/步骤1/7分步阅读

    当vba程序在弹出的模式窗口背后操作表格时,窗口就会明显的失去焦点,这时候要是在窗口里点击按钮时,需要点击两次,可能是失去焦点所致。如何让窗口重获焦点?这正是我们要探讨的问题。

    2/7

    我们可以有如下做法:

    //找到窗口属性

    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/7

    上述原理是将hWndMain窗口屏蔽掉鼠标和键盘的响应,但是保留在桌面最底层,相当于嵌入了桌面,如果再次调用显示窗口的函数可将其激活

    4/7

    如何让窗口获得焦点?

    在自己的form的deactive事件发生时用setwindowpos重新定位就可以了。

    5/7

    而当C# winform 的窗体失去焦点之后,再次从新获得焦点事件失效是因为用Deactivate事件可以执行窗体被停用时的程序,此时窗体可能被最小化了,或者被其他文件夹挡住了,这个窗体并没有最小化。

    6/7

    另外还可以修改控件的tabindex属性,根据数字顺序依次排列就好了。至于是否要跳开某个控件,则是关闭那个控件的tabstop属性就好了(改了false则跳过)

    7/7

    以上就是execl窗体如何重新获得焦点的全部内容了,希望能对你们有所帮助,谢谢!!

    注意事项

    以上就是全部内容了!!

    希望能对你们有所帮助,谢谢!!

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_486940.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 20:40:59  耗时:0.024
    0.0238s