8
votes

C # Winforms: Comment empêchez-vous que le formulaire enfant est minimisé lorsque la forme parent est minimisée?

Je crée une application C # Winforms MDI. J'ai une forme principale qui contient 4 autres formes à l'intérieur. Je veux pouvoir déplacer les formes de l'enfant en dehors du formulaire parent (leur valeur de formulaire de formulaire est définie sur une barre d'outils importante de sorte que les fenêtres séparées n'apparaissent pas dans la barre des tâches pour chaque fenêtre enfant). Je suis capable de l'accomplir en utilisant le code suivant pour la forme principale: xxx

Cependant, lorsque je minimise la forme parent, toutes les formes enfants sont minimisées également (comme prévu). Est-ce qu'il y a de toute façon pour empêcher les formes enfants qui sont en dehors de la fenêtre mère à minimiser lorsque la fenêtre mère est minimisée? Fondamentalement, je souhaite que l'utilisateur puisse être en mesure de redimensionner et de déplacer les formulaires individuels de l'enfant en dehors de la forme parent si vous le souhaitez (comme de vous reconnecter une barre d'outils dans Visual Studio.net et de la placer dans un autre moniteur quelque part). Merci pour votre aide!


5 commentaires

Grande question. Je n'ai pas la réponse mais je vais y regarder. C'est certainement un scénario intéressant.


Avez-vous essayé de supprimer "ceci" de l'appel de spectacle ()? (Montrant le formulaire sans parent.)


Oui, mais ce qui se passe, c'est que les formes d'enfants sont placées derrière la fenêtre mère au démarrage. Je veux que les formes de l'enfant soient toujours devant la forme parent.


Êtes-vous sûr de travailler avec MDI parent / enfants? Pour autant que je sache, vous devez définir la propriété MDIParrent pour chaque enfant afin d'obtenir la vraie fonctionnalité MDI fonctionnant. Pour autant que je sache, vous ne définissez que le propriétaire de la forme enfant.


Oui, mais si j'utilise MDIParent, les formulaires enfants ne peuvent pas se déplacer en dehors de la forme parent.


3 Réponses :


1
votes

Je pense que vous devrez vous éloigner des fenêtres appartenant / parentées / MDI, et devrez-vous plutôt les faire toutes les fenêtres de haut niveau permanentes, en "parallèle" les uns aux autres. Puis écrivez votre propre logique pour l'amarrage d'une fenêtre dans une autre.


0 commentaires

1
votes

Vous n'avez pas en fait créé une application MDI, vous ne définissez pas la propriété MDIParrent de la Formulaire enfant. Devrait être clairement visible, vous pouvez déplacer la forme enfant en dehors des limites de la forme principale.

Vous les avez fait posséder des fenêtres à l'aide de la surcharge de l'émission (propriétaire). Ce qui signifie qu'ils seront toujours au-dessus de la fenêtre principale. Et être minimisé aussi lorsque vous minimisez la fenêtre principale.

Appelez simplement la méthode Afficher () à la place (aucun argument).


0 commentaires

1
votes

OK, je l'ai eu pour fonctionner: xxx

est ce code de sécurité?


0 commentaires