gpt4 book ai didi

C# Windows 窗体,不在任务栏中显示窗体,但在显示的窗体获得焦点时使其位于最前面

转载 作者:可可西里 更新时间:2023-11-01 14:40:54 27 4
gpt4 key购买 nike

我正在制作一个应用程序,它将具有类似于 Photoshop 的界面:多个单独的表单都有助于编辑一个对象。因此,我将有多种形式,其中一种是“主要”(提供文件菜单、设置菜单等),其他形式具有编辑在主要形式中打开的对象的控件。

为简单起见,我们说这是一个文本编辑器,我有 MainForm 和 StyleForm。现在,我需要的是整个应用程序在 Windows 任务栏中显示为一个“栏”。这可以通过将 StyleForm 的 ShowInTaskbar 设置为 false 来实现,但是如果我,比如说,关注其他应用程序,然后关注我的应用程序,只有 MainForm 会在其他窗口之上,StyleForm 将保持隐藏在我关注的应用程序的窗口下之前。

我在这里找到答案 Make all forms associated with a program come to the front when one form is selected但它导入了一个dll。也许有一个 .net 解决方案?

另外,我想在任务栏中显示一些不同的东西,而不是 MainForm 的标题,这可能吗?

最佳答案

我将第二个表单设置为 ShowInTaskBar = false,将 FormBorderStyle 设置为 SizableToolWindow,然后使用以下代码创建它:

public partial class Form1 : Form
{
Form2 f2;

public Form1()
{
InitializeComponent();

f2 = new Form2();
f2.Owner = this; // <-- This is the important thing
f2.Show();
}
}

这使得子窗体 F2 保持在 Form1 之上,并在 Form1 隐藏和显示时隐藏和显示它。

编辑
哦,如果这很重要的话,我使用了 Visual Studio 2010 和 .NET 4 Client Profile。但是,这应该适用于其他版本。

关于C# Windows 窗体,不在任务栏中显示窗体,但在显示的窗体获得焦点时使其位于最前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9989314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com