能否让某个窗口只在指定的窗口之上?

烤火的鱼 2012-06-04 03:04:31
在windows资源管理器中复制文件时,会用一个窗体显示复制文件的"进度",在win7中,我们可以看到这样一个特性:
该进度窗口始终位于资源管理器前面,但切换到其他窗口时(比如其他资源管理器/word等等),该窗口又在其他窗口后面,换句话说,该窗口"仅仅"挡住了对应的资源管理器.
在C#中,
Form1 myForm=new Form1();myForm.Show();
如果Form1的TopMost=true;,该窗口会在所有窗口前面,包括输入法,如果设置为false,点主窗口时,该窗口会被主窗口挡住,能否有一个方法,实现类似"复制进度"窗口的效果,即Form1始终在主窗口前面,但切换到其他应用程序时,又不会挡住其他窗口.
...全文
279 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
烤火的鱼 2012-06-05
  • 打赏
  • 举报
回复
经测试,frm.Owner = this;或者myForm.Show(this);都达到了目的,非常感谢,另外,ShowDialog()显然和我们的初衷不符,因为阻塞了当前线程,后面的操作无法继续了
烤火的鱼 2012-06-05
  • 打赏
  • 举报
回复
我先试试
ParanoidKing 2012-06-04
  • 打赏
  • 举报
回复
myForm.Show(this);
SocketUp 2012-06-04
  • 打赏
  • 举报
回复
Form2 frm = new Form2();
frm.Owner = this;
frm.Show();
cheng2005 2012-06-04
  • 打赏
  • 举报
回复
我之前也碰到了这种需求,最后用MDI做的,直接调用的API。
缺点就是MDI中的子窗口只能在父窗口的区域内显示出来,无法在窗口外面显示。
一直没找到更好更简便的解决方案。
__天涯寻梦 2012-06-04
  • 打赏
  • 举报
回复
myForm.ShowDialog() 这效果行不

110,570

社区成员

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

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

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