首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >this.TopMost =真的不起作用?

this.TopMost =真的不起作用?
EN

Stack Overflow用户
提问于 2013-05-31 16:41:16
回答 6查看 31.6K关注 0票数 11

我是C#的新手,我还在努力说服自己(在一些非常有耐心的朋友的帮助下)。

我在将新窗口窗体的TopMost属性设置为true时遇到了问题。我有两种(几乎)相同的表格;一种有效,另一种不行。

这两个窗体都将TopMost属性设置为true

  • Form1显示窗口,当我试图单击它后面时,表单会闪烁几次并发出窗口哔哔声。
  • Form2也显示表单,但是当我单击它后面时,表单会变灰(或失去焦点),我可以单击主窗体。

我已经搜索了这个问题的答案,并找到了一个建议将this.TopMost = true;放在表单的load事件中的答案,但这是行不通的。

我更改的唯一可能或可能没有产生效果的是,Form1是在属性中设置.NET 4.5的情况下创建的,在创建Form2之前,我将其更改为.NET 3.5 (客户端配置文件)。我试过把它改回去,但没什么用。在我再次删除和创建Form2之前,有人有什么想法吗?

在此之前,非常感谢您。(如果你需要更多的信息,请告诉我。)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-05-31 17:36:50

TopMost是一个属性,用于确保一个窗口总是显示在应用程序中的所有其他窗口之上。Microsofts示例是一个查找和替换工具。

您发现的不同之处在于,Form1是通过使用ShowDialog作为模态对话框创建的。“显示”对话框确保必须关闭窗体,才能再次使用应用程序中的所有其他窗口。例如,使用表单获取用户数据以输入父窗体数据库。

当您不介意您的用户是否完成了他们的对话框时,就会使用显示,例如允许您的用户有机会使用一些实用工具(例如计时器、秒表)来帮助程序的主要功能。

在使用不同的.Net框架时,我唯一能想到的视觉差异是不同的windows对话框,如OpenFileDialog,这些对话框已经在整个框架中进行了更新。

票数 15
EN

Stack Overflow用户

发布于 2013-05-31 16:43:08

它可能对你有帮助;

代码语言:javascript
复制
frm.TopLevel = true;
frm.TopMost = true;
票数 8
EN

Stack Overflow用户

发布于 2014-10-02 13:54:24

来自微软的这个链接确认了这可能是Windows7和Windows 2008 R2中的一个Bug,我在一个Windows7嵌入式系统中遇到过它,并且提供的修补程序修复了这个问题,所以请考虑看一下:)

http://support.microsoft.com/kb/2587473/en-us

希望能帮上忙!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16862057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档