Comment prévenir la minimisation de la fenêtre enfant lorsque la fenêtre parente est réduite

Si je montre une nouvelle fenêtre enfant non modale à l’aide de .Show (frmParent) et que la fenêtre parente est réduite, l’enfant sera automatiquement réduit au minimum.

Quel est le meilleur moyen de prévenir cela?

EDIT: La fenêtre enfant doit être non modale et le jeu parent doit être utilisé .

Il est appelé “fenêtre possédée”, pas de fenêtre enfant. Windows garantit que la fenêtre possédée est toujours au-dessus de son propriétaire. Ce qui implique qu’il doit être minimisé lorsque le propriétaire est minimisé.

Winforms prend cependant en charge la modification du propriétaire à la volée. Cet exemple de code a bien fonctionné:

 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private Form ownedWindow; private void button1_Click(object sender, EventArgs e) { if (ownedWindow != null) return; ownedWindow = new Form2(); ownedWindow.FormClosed += delegate { ownedWindow = null; }; ownedWindow.Show(this); } protected override void WndProc(ref Message m) { // Trap the minimize and restore commands if (m.Msg == 0x0112 && ownedWindow != null) { if (m.WParam.ToInt32() == 0xf020) ownedWindow.Owner = null; if (m.WParam.ToInt32() == 0xf120) { ownedWindow.Owner = this; ownedWindow.WindowState = FormWindowState.Normal; } } base.WndProc(ref m); } } 

Si la fenêtre enfant doit se comporter comme une boîte de dialog (vous ne pouvez pas interagir avec la fenêtre parente tant qu’elle est ouverte), alors appelez .ShowDialog(frmParent) .