加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

多个 WindowsFormsHost 叠加顺序调整

发布时间:2020-12-13 22:27:38 所属栏目:Windows 来源:网络整理
导读:原文: 多个 WindowsFormsHost 叠加顺序调整 工作中遇到多个 WindowsFormsHost 包装的控件叠加顺序的调整问题,用了 BingToFront 和 BringToBack,不起效。后来在研究 AvalonDock 控件源码时发现其内部类似问题的处理是调用 Win32 的一个API(BringWindowToTo
原文: 多个 WindowsFormsHost 叠加顺序调整

工作中遇到多个 WindowsFormsHost 包装的控件叠加顺序的调整问题,用了 BingToFront 和 BringToBack,不起效。后来在研究 AvalonDock 控件源码时发现其内部类似问题的处理是调用 Win32 的一个API(BringWindowToTop)解决的。效仿之,解决了我的问题。

函数定义如下:

1 [DllImport("user32.dll")]
2 [return: MarshalAs(UnmanagedType.Bool)]
3 public static extern bool BringWindowToTop(IntPtr hWnd);

hWnd 直接传WindowsFormsHost.Handle,试过传其内部定义的Panel.Handle,显示为一条白线(没深究)。每调用一次,会将当然句柄的WindowsFormsHost置于最上层,如果有其他WindowsFormsHost出现在当然控件位置会将其覆盖,如需一直保持在最上层,再次调用此函数即可。

工作笔记,欢迎讨论。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读