this.TopMost = true不工作?

Kun*_*00b 9 .net c# winforms

我是C#的新手,仍然试图让我的头脑(在一些非常耐心的朋友的帮助下).

我有一个设置新窗体的TopMost属性的问题true.我有两个(几乎)相同的形式; 1可行,1则不行.

两个表单都将TopMost属性设置为true.

  • Form1显示窗口,当我尝试在其后面单击时,表单闪烁几次并发出一声窗口蜂鸣声.
  • Form2也显示了表单,但是当我在它后面点击时,表单会变灰(或失去焦点),我可以点击主表单.

我已经搜索了这个问题的答案,并找到了一个答案,建议放入this.TopMost = true;表单的加载事件,但这不起作用.

我改变的唯一可能有效或可能没有效果的是Form1是在属性中设置.NET 4.5创建的,在创建Form2之前,我将其更改为.NET 3.5(客户端配置文件).我试过把它改回来,但它没有帮助.在我再次删除并创建Form2之前,有没有人有任何想法?

提前谢谢了.(如果您需要更多信息,请告诉我们)

Say*_*yse 13

TopMost是一个属性,用于确保一个窗口始终显示在应用程序中的所有其他窗口之上.微软的例子是一个查找和替换工具.

您发现的差异是通过使用ShowDialog将Form1创建为模式对话框.显示对话框确保在再次使用应用程序中的所有其他窗口之前必须关闭表单.例如; 使用表单获取用户数据以进入父表单数据库.

当您不介意用户是否已完成对话时,会使用显示,例如允许您的用户使用某些实用程序(例如计时器,秒表)来帮助实现程序的主要功能.

在使用不同的.Net框架时,我能想到的唯一视觉差异是不同的窗口对话框,例如OpenFileDialog,它们已在整个框架中更新


Fur*_*nci 7

它可能会帮助你;

frm.TopLevel = true;
frm.TopMost = true;
Run Code Online (Sandbox Code Playgroud)