none
manipulation de fenêtre RRS feed

  • Question

  • Bonjour,

    J'utilise une fenêtre (Form_main) principale qui est maximisée a l'ouverture de mon application. Cette fenêtre est un standard : barre de menu, barre d'icône, barre de titre et IsMdiContainer = True.

    A l'ouverture de mon application, j'ouvre automatiquement une fenêtre fille (Form_Planning), cette fenêtre est maximisée.

    Ma question 1 : Est-il possible de garder cette deuxième fenêtre ouverte, et toujours maximisée, quelque soit la situation? c'est à dire d'interdire de la fermer et de l'iconiser ou de le diminuer

    j'utilise les 3 lignes suivantes pour ouvrir des fenêtre MDI :

    Dim form As New Form_Agent
    form.MdiParent = Me
    form.Show()

    Ma question 2 : Comment faire pour savoir si la fenêtre est déjà active, et dans ce cas uniquement de le remêtre au premier plan, plutot que d'ouvrir une deuxième instance?

    Remerciements,


    Jean PERIGNY, Développeur
    jeudi 20 mai 2010 06:11

Réponses

  • Bonjour,

    Pour le problème de la fermeture utilisez le code suivant dans FormClosing :

    ' Ajoutez si nécessaire d'autres conditions sur la cause de la fermeture...
    If e.CloseReason <> CloseReason.MdiFormClosing Then e.Cancel = True End If

    Pour le problème de la maximisation, vous pouvez mettre dans l'événement Activated de votre fenêtre qui doit être toujours maximisée :

    Me.WindowState = FormWindowState.Maximized

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Marqué comme réponse jperigny samedi 22 mai 2010 14:56
    samedi 22 mai 2010 13:33
    Modérateur

Toutes les réponses

  • Bonjour,

    1/Définissez la propriété MaximizeBox et MinimizeBox à False.

    2/Pour savoir si fenêtre est active regardez la propriété Visible de form.

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    jeudi 20 mai 2010 07:50
    Modérateur
  • Bonjour,

    les propriétés MaximizeBox et MinimizeBox à false, ne fonctionne pas dans ce cas présent. Après l'ouverture de la fenêtre, malgrès l'activation, les boutons correspondant sont toujours présents, et c'est après avoir minimisé une 1ère fois, que les proprités à false prennent effets.

    Remerciements,


    Jean PERIGNY, Développeur
    jeudi 20 mai 2010 10:09
  • J'ai trouvé, il me fallait placer les 2 proprités avant la ligne form.show()

    Mais, pour empécher la fermeture de la fenêtre?

    remerciements,


    Jean PERIGNY, Développeur
    jeudi 20 mai 2010 10:25
  • Bonjour,

    Dans l'événement FormClosing mettez la propriété e.Cancel toujours à true.

    Cordialement

     


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    jeudi 20 mai 2010 19:03
    Modérateur
  • Bonjour,

    il m'a fallu mettre e.cancel = false dans l'évènement FormClosing de la MDI Parent, sinon, je ne pouvais plus fermer l'application.

    Par contre, Si j'ouvre une autre fenêtre en MDI enfant depuis la MDI Parent, a la fermeture de cette nouvelle fenêtre, ma MDI Enfant (Form_Planning) qui doit toujours rester ouverte, est alors minimisée, et je ne peux plus la maximisée bien sûr étant donnée que les boutons systèmes ne sont plus visible.

    Vous me dite si mon explication n'est pas claire ...

    Remerciements,


    Jean PERIGNY, Développeur
    vendredi 21 mai 2010 07:39
  • Bonjour,

    Pour le problème de la fermeture utilisez le code suivant dans FormClosing :

    ' Ajoutez si nécessaire d'autres conditions sur la cause de la fermeture...
    If e.CloseReason <> CloseReason.MdiFormClosing Then e.Cancel = True End If

    Pour le problème de la maximisation, vous pouvez mettre dans l'événement Activated de votre fenêtre qui doit être toujours maximisée :

    Me.WindowState = FormWindowState.Maximized

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Marqué comme réponse jperigny samedi 22 mai 2010 14:56
    samedi 22 mai 2010 13:33
    Modérateur
  • Remerciements
    Jean PERIGNY, Développeur
    samedi 22 mai 2010 14:55