Как сделать форму всегда сверху в приложении

У меня есть форма, которую я хочу всегда быть на вершине всякий раз, когда она открывается в приложении, но я не хочу, чтобы она была сверху, когда основная форма была сведена к минимуму или перемещено другое приложение. Я хочу, чтобы он был сверху только в моем приложении.

После ответа в вопросе: Как сделать окно всегда оставаться на вершине .Net?

    this.TopMost = true;

Делает форму сверху, но форма все еще находится сверху, когда другое приложение перемещается или основная форма закрыта.

Как мне сделать форму только сверху в приложении, позволяя пользователю по-прежнему работать в основной форме?

Ответ 1

Вы ищете принадлежащее окно. Он всегда находится на вершине владельца и минимизируется вместе с владельцем. Хорошими примерами доступных окон являются различные вспомогательные окна внутри Visual Studio. Вы можете открепить их, но они всегда останутся на вершине главного окна VS.

Вы создаете собственное окно, отображая его с помощью перегрузки Show (owner). Или путем прямого назначения его свойства Owner.

Ответ 2

Установите верхний уровень, а затем установите владельца, пример ниже.

public Form1()
{
    InitializeComponent();
    Form2 f2 = new Form2();
    //top level not really needed
    f2.TopLevel = true;
    f2.Show(this);
}