Что вы могли бы сделать, так это убедиться, что родительская форма передана в качестве владельца при отображении дочерней формы:
Form newForm = new ChildForm();
newForm.Show(this);
Затем в дочерней форме настройте обработчики событий для событий Activated
и Deactivate
:
private void Form_Activated(object sender, System.EventArgs e)
{
if (this.Owner != null)
{
this.Owner.Enabled = false;
}
}
private void Form_Deactivate(object sender, System.EventArgs e)
{
if (this.Owner != null)
{
this.Owner.Enabled = true;
}
}
Однако, это приведет к действительно странному поведению; пока вы не сможете сразу вернуться и взаимодействовать с родительской формой, активация любого другого приложения включит ее, а затем пользователь сможет взаимодействовать с ней.
Если вы хотите сделать дочернюю форму модальной , используйте ShowDialog
вместо:
Form newForm = new ChildForm();
newForm.ShowDialog(this);