Итак, я написал код для создания новой формы Windows из родительского элемента с полноэкранным режимом, черным цветом и непрозрачностью 80% для создания эффекта затемнения.
Затем над ним отображается другая форма, показывающая прогресс.
Код в настоящее время выглядит так:
this.Enabled = false;
frmDimScreen.BackColor = Color.Black;
frmDimScreen.Opacity = .8;
frmDimScreen.FormBorderStyle = FormBorderStyle.None;
frmDimScreen.Size = new Size(splitContainerMain.Width - 4, splitContainerMain.Height - 2);
frmDimScreen.StartPosition = FormStartPosition.Manual;
frmDimScreen.ShowIcon = false;
frmDimScreen.ShowInTaskbar = false;
frmDimScreen.Show();
frmDimScreen.Location = new Point(splitContainerMain.Location.X + 2, ((splitContainerMain.Location.Y + tsMainTools.Height) - 4));
addImgIL.ShowIcon = false;
addImgIL.ShowInTaskbar = false;
addImgIL.TopMost = true;
addImgIL.Show();
addImgIL.Location = new Point((this.Width - addImgIL.Width) / 2, (this.Height - addImgIL.Height) / 2);
addImgIL.BringToFront();
Основная причина, по которой я спрашиваю, заключается в том, что если родительское окно теряет фокус, тогда дочерние формы выходят из строя и неправильно распределяются по слоям. Я знаю, что могу справиться с этим через OnPaint, но ищу лучшее решение.
Вопрос / проблема, это лучший способ добиться того, что я пытаюсь сделать? Должен ли я использовать формы или графику для создания затемнения? Что каждый испытывает с этим?
Заранее спасибо!