C# 窗口不显示标题栏、不显示在任务栏、显示在最前

不显示标题栏

可在设计器中设置

this.FormBorderStyle = FormBorderStyle.None;

不显示任务栏

可在设计器中设置

this.ShowInTaskbar = false;

显示在最前(全局置顶)

可在设计器中设置

this.TopMost=true;

子窗口显示在本应用程序窗口的最上面

不是全局置顶,可以通过 子窗口 的 Owner 属性或设置 TopLevel 属性来实现。这种方式确保本应用的某个窗口始终在应用内其他窗口之上,而不会影响系统中其他应用的窗口。

实现方法:

通过设置窗口的 Owner 属性,使子窗口始终显示在其父窗口之上,同时不会干扰其他应用程序的窗口。

// 创建子窗口对象
subForm = new SubForm();
// 关键:设置子窗口的所有者为本窗口
// 这样子窗口会始终显示在父窗口(本应用)之上,但不会全局置顶
subForm.Owner = this;

解释:

  1. Owner 属性的作用:

    • 当设置 subForm.Owner = this 时,子窗口会始终显示在其父窗口(MainForm)之上。
    • 这种层级关系仅局限于当前应用程序,不会影响系统中其他应用的窗口。
    • 关闭父窗口时,子窗口会自动关闭(可选配置)。
  2. 与 TopMost 的区别:

    • TopMost = true 会让窗口全局置顶(显示在所有应用窗口之上)。
    • 而 Owner 属性仅确保窗口在本应用内的层级优先,更适合应用内部的窗口管理。
  3. 适用场景:

    • 应用内的对话框(如设置窗口、提示窗口)。
    • 需要临时显示但不希望遮挡其他应用的窗口。

通过这种方式,可以精确控制应用内窗口的显示层级,既保证了本应用窗口的相对优先性,又不会干扰用户对其他应用的操作。