即时通讯有一个类似的问题,像这里的解决方案Prevent main form from appearing when showing another form。但一些建议是最大限度地减少主应用程序,所以它不显示,我不能做,因为我的主要应用程序应该是一个桌面,在所有其他应用程序的下面,以取代Windows桌面。第二种形式应该是粘滞便笺。所以我不能最小化主窗口,因为它有用户背景和其他控件。我试图使笔记的父母没有指针,指向桌面的指针,通过DLL创建表单,但我没有成功。vb.net防止表单1被激活当表单2被点击
我的主要问题是,当我点击一个音符(form2)form1时,即使form1在createparams中有WS_EX_NOACTIVATE。 form1执行form2.show(),但不应附加它们。
另一个原因,即在该帖子中预先解决的问题是,他们是为delphi和即时通讯在vb.net做。
我所需要的是能够点击控件并在笔记中写入主要形式的笔记中。或者使它们独立,或者使笔记不聚焦第一种形式,或者在没有激活的情况下能够操作笔记。我不知道。我的最后一个资源是将我的主窗体附加到桌面上,但我听说是最糟糕的事情,因为它可能会导致挂起系统的问题。
我不是100%肯定,我跟着你但现在看来,Form1将在显示显示form2之前的背景?如果是这样,你有没有尝试在调用Form2.Show()之前设置Form1.Visible = False或Form1.Opacity = 0? –
好的,让我澄清一下。 form1是位于桌面上的最大化边界形式。要做到这一点,我使用了API setPosition并将它发送到Zlayer的后面并放置了noactivate选项。之后,我从form1创建form2并执行.show()。一切正常,直到现在。但只要我点击form2,form1就会以form2来到前台。 form2仍然在form1之上,所以我可以看到form2,但form1现在已经覆盖了所有其他类似word的应用程序。我可以alt标签再次看到他们,但我不想form1永远不会到前台。我想要一个AlwaysOnBottom选项将其粘贴到桌面上。 – superjugy
您可能需要考虑稍微改变一下设计,并让form2成为一个单独的可执行文件,即form1 shell。您可以重定向标准输入/输出以与form2进程交互。 –