Форма MDIchild идет за панелью

У меня есть панель в форме MDI, и на панели есть некоторые элементы управления. Когда я открываю формы MDIChild, формы идут за панелью. Я попытался формы. Принесите Фронт () и панель. Отправьте обратно (). Но ничего не работает. Затем я установил setchildIndex панели на 0, тоже не сработало.

Есть ли способ сохранить панель всегда позади всех форм?

Спасибо

5 ответов

Решение

Проблема в том, что контейнер для дочерних элементов MDI является родным элементом панели. Панель находится либо над этим контейнером, либо за ним.

Вы хотите, чтобы панель находилась в том же контейнере, что и дочерние элементы MDI, но я не верю, что это возможно. Контейнер MDI содержит дочерние элементы MDI и ничего больше.

Короче говоря, я не думаю, что MDI даст вам то, что вам нужно.

Создайте новую пустую форму, а затем установите следующее свойство этой формы в событии Form_load

private void bg_Load(object sender, EventArgs e)
{
    this.ControlBox = false;
    this.FormBorderStyle = FormBorderStyle.None;
    this.WindowState = FormWindowState.Maximized;
}

затем после, напишите следующий код в событие загрузки формы MDI

private void Main_Load(object sender, EventArgs e)
{
    bg bg = new bg(); // create object of empty form my empty form name is "bg"
    bg.MdiParent = this;
    bg.Show();
}

все, что вы хотите в фоновом режиме, добавить в пустой форме....

Я просто добавил BringToFront метод после Show метод.

отлично работает для меня

Поместите контейнер для потоковой передачи, добавьте к нему дочерний элемент, и он будет располагаться поверх другой панели.

Не могли бы вы поместить панель в дочернее окно MDI и зафиксировать ее положение и размер в родительском окне MDI? Затем просто сделайте так, чтобы только один тип дочернего окна MDI, который содержит вашу панель, мог быть открыт одновременно в пределах вашего родителя MDI.

Другие вопросы по тегам