我是C#的新手,我还在努力说服自己(在一些非常有耐心的朋友的帮助下)。
我在将新窗口窗体的TopMost属性设置为true时遇到了问题。我有两种(几乎)相同的表格;一种有效,另一种不行。
这两个窗体都将TopMost属性设置为true。
我已经搜索了这个问题的答案,并找到了一个建议将this.TopMost = true;放在表单的load事件中的答案,但这是行不通的。
我更改的唯一可能或可能没有产生效果的是,Form1是在属性中设置.NET 4.5的情况下创建的,在创建Form2之前,我将其更改为.NET 3.5 (客户端配置文件)。我试过把它改回去,但没什么用。在我再次删除和创建Form2之前,有人有什么想法吗?
在此之前,非常感谢您。(如果你需要更多的信息,请告诉我。)
发布于 2013-05-31 17:36:50
TopMost是一个属性,用于确保一个窗口总是显示在应用程序中的所有其他窗口之上。Microsofts示例是一个查找和替换工具。
您发现的不同之处在于,Form1是通过使用ShowDialog作为模态对话框创建的。“显示”对话框确保必须关闭窗体,才能再次使用应用程序中的所有其他窗口。例如,使用表单获取用户数据以输入父窗体数据库。
当您不介意您的用户是否完成了他们的对话框时,就会使用显示,例如允许您的用户有机会使用一些实用工具(例如计时器、秒表)来帮助程序的主要功能。
在使用不同的.Net框架时,我唯一能想到的视觉差异是不同的windows对话框,如OpenFileDialog,这些对话框已经在整个框架中进行了更新。
发布于 2013-05-31 16:43:08
它可能对你有帮助;
frm.TopLevel = true;
frm.TopMost = true;发布于 2014-10-02 13:54:24
来自微软的这个链接确认了这可能是Windows7和Windows 2008 R2中的一个Bug,我在一个Windows7嵌入式系统中遇到过它,并且提供的修补程序修复了这个问题,所以请考虑看一下:)
http://support.microsoft.com/kb/2587473/en-us
希望能帮上忙!
https://stackoverflow.com/questions/16862057
复制相似问题