怎么在全屏显示的窗体里始终置顶新窗体

yct0605 2012-12-26 10:34:03
有一个全屏显示的应用程序,里面有几个MDI窗体,现在在一个MDI窗体里面调用一个外部的执行程序窗体(该执行程序窗体默认是置顶的),调用外部程序时显示置顶,在该MDI窗体里面进行其他操作时,外部程序被遮挡;切换其他MDI窗体时,调用的外部程序也被遮挡了,现在不知道该怎么解决这个问题了,请大家帮帮忙,谢谢了!

外部程序已经将topmost:true;
...全文
547 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yct0605 2012-12-29
  • 打赏
  • 举报
回复
引用 3 楼 mamaqin 的回复:
把弹出窗体的模式设置为parent,这样就可以始终在屏幕最前面显示了。忘给分。
我试试看,另外parent模式怎么设置?
yct0605 2012-12-29
  • 打赏
  • 举报
回复
引用 2 楼 slowhand 的回复:
外部窗体是自己写的么?能设置它的owner为全屏应用程序么?
外部窗体时一个窗口,不能全屏显示。
yct0605 2012-12-29
  • 打赏
  • 举报
回复
引用 1 楼 fwj380891124 的回复:
下面的窗体topmost设为false,上面的设置为true.
mdi窗体都为置顶的,不能更改。
APM60- 2012-12-29
  • 打赏
  • 举报
回复
我说的就是设置父窗体的意思。 A 全屏窗体 (parent of B) B 外部窗体 (child of A)(B.owner = A) 子窗体应该可以直接setowner 或者可以在子窗体上这么写

    [DllImport("user32.dll")]
    private static extern int SetWindowLong(HandleRef hWnd, int nIndex, int dwNewLong);

    SetWindowLong(new HandleRef(this, this.Handle), -8, ownerHandle.ToInt32());
其中的ownerHandle就是父窗体的句柄。 同样是topmost窗体,子窗体就会一直显示在父窗体前边了。
星火燎猿 2012-12-27
  • 打赏
  • 举报
回复
下面的窗体topmost设为false,上面的设置为true.
mamaqin 2012-12-27
  • 打赏
  • 举报
回复
把弹出窗体的模式设置为parent,这样就可以始终在屏幕最前面显示了。忘给分。
APM60- 2012-12-27
  • 打赏
  • 举报
回复
外部窗体是自己写的么?能设置它的owner为全屏应用程序么?

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧