Une autre erreur? (Programmation Visual Basic)

Résolu
Selon moi, il y a une erreur non? J'ai écrit pour que le logiciel reste en arrière plan et, Visual Studio écrit que "e.Cancel = True" est une erreur. Quelqu'un peut m'aidez? Merci d'avance!

Public Class Accueil
    Dim closeForm As Boolean = False
    Private Sub Accueil_Load(sender As Object, e As EventArgs) Handles MyBase.FormClosing
        If (closeForm = False) Then
            e.Cancel = True
            Me.Hide()
            Me.WindowState = FormWindowState.Minimized
            Notif.ShowBallonTip(500, "Exécution", "Nous sommes toujours en cours d'exécution. Cliquez sur le bouton dans la barre des tâches pour réouvrir le logiciel.", ToolTipIcon.Info)
        End If
    End Sub
End Class


--
Ludlulu

7 réponses

  1. Contributeur
    bonjour, n'as-tu pas un message d'erreur plus précis?
    as-tu vérifié si Cancel était une propriété du type EventArgs?
    que penses-tu obtenir avec cette ligne de code?
    1. Je vais vérifiez ça tout de suite!
    2. Voila une capture d'écran que j'ai pris. J'espère quelle vous seras utile!
    3. Contributeur
      et si tu supprimes la ligne
       e.Cancel = True
      ?
      pourquoi as-tu ajouté cette ligne, à quoi penses-tu qu'elle serve?
    4. @yg_bePour annuler la fermeture?
    5. Contributeur
      @Ludvic.il me semble que ton code s'occupe de l'ouverture, pas de la fermeture.
  2. Modérateur
    Private Sub Accueil_Load(sender As Object, e As EventArgs) Handles MyBase.FormClosing 


    FormClosing a une signature spécifique, différente (mais compatible) de Load.
    Utilise le bon prototype de gestionnaire d'événement.
    1. Le quelle tu crois et comment accédez au gestionnaire? Merci d'avance!
  3. Bonjour

    j'ai essayé ton code, avec l'exe compilé, pas avec VS, car avec VS c'est pas vraiment l'exe.

    Dans un premier temps, en commentant la ligne de notification (j'avais pas mis de NotifyIcon dans mon winform de test) et tout c'est bien passé.

    Ensuite, j'ai ajouté un NotifyIcon, que j'ai appelé Notif.
    Là j'ai une erreur de précompilation, la méthode ShowBallonTip n'existe pas, c'est ShowBalloonTip

    Une fois ceci corrigé ça marche aussi, enfin, je ne voie pas le ballon et je n'ai pas de bouton dans la barre des taches (il me semble qu'avec Hide c'est normal), j'ai donc du arrêter le logiciel avec le gestionnaire des taches.

    Donc même si ça ne fait pas exactement ce que tu décris dans ton ballon, y'a pas d'erreur.

    Donc, il nous faudrait plus d'infos, le message d'erreur exact par exemple, ainsi que le contenue des variables au moment où ça plante (avec des espions).

    Aussi, pourquoi, y avait il une erreur dans le nom de méthode ShowBalloonTip, aurais tu écris ton propre système de notification, auquel cas, ne serait pas dans ce sytème qu'il y aurait une erreur?
    1. Bonjour Wishmeril,

      pour le "showTipBalon", c'est juste que j'ai du le recopier à la main car il est sur un autre ordinateur (Visual Studio) et j'ai surement oublier le "o" mais, je peux t’assurer qu'il est bien présent. Ensuite, le "Hide". Lui, je l'ai mis après "showTipBalloon" et il fonctionne. Puis, ça me ferait un grand plaisir tantôt de vérifier le message d'erreur.

      Coridalement, Ludvic.
      1. Mon message d'erreur est sur la capture d'écran de la réponse de yg_be. J'espère quelle vous seras utile!
    2. Ha ben oui, parce que la signature d'un évènement FormCloasing, n'est pas celle que tu as mise.

      EventArgs c'est le type chapeau de tous les paramètres d'évènements des outils Framwork, mais pour FormClosing, on utilise un type dérivé dédié
      Il t'aurais suffit de quelques instants sur l'aide en ligne pour t'en rendre compte
      https://docs.microsoft.com/fr-fr/dotnet/api/system.windows.forms.form.formclosing?view=netcore-3.1

      (si le code exemple n'est pas en VB, tu peux le changer en haut à droite de la page, en cliquant sur le nom du langage, à coté de "signet"

      Dans mon projet, j'avais déjà du code dans cet évènement, et puis mon formulaire n'a pas le même nom, alors j'ai copié le contenu de la méthode, mais pas sa déclaration => pas d'erreur pour moi

      1. Et donc... quelle est mon erreur? (J'ai pas tout compris)
      2. Contributeur
        il s'agit de _Load
        d'où ma question, sans réponse, à propose du but du
        Cancel=true
      3. @Ludvic.Es tu allé voir le lien que je t'ai donné?
      4. @Utilisateur anonymePS, tu dis ne pas avoir tout compris, c'est symptomatique d'un apprentissage sur le tas sans prendre la peine d'apprendre les bases, parce que "méthode", "signature", "type dérivé" se sont des notions clés de VB.Net, qu'on apprend (en théorie) dans le début de sa formation.
        Le meilleur conseil que je puisse te donner est de laisser ton projet de coté quelques jours pour suivre un cours en ligne
        celui là par exemple https://plasserre.developpez.com/cours/vb-net/ même s'il s'adresse aux anciens codeurs de VB6 et qu'il prend l'objet pour un effet de mode ou encore celui d'openclassroom, moins accessible mais bien orienté objet.
      5. @Utilisateur anonymeDans le premier site que tu m'as envoyée Whismeril, ça parle de C #.
        Pour le deuxième, ça montre tout plein de trucs que j'ai déjà vu!
    3. Merci à tous! Selon moi, comme Whismeril à dit, je vais en apprendre beaucoup plus. Merci pour votre aide!
      1. Bonjour,
        Est-ce une WindowsAppForm ?
        Si oui essay simplement Me.Hide(), qui cachera la fenêtre.
        Si ça peut t'aider.

        Cordialement,
        Codeur32547
        1. Bonjour, as tu lu le code qu'il utilises?
          Notamment la ligne 6
        2. @Utilisateur anonymeRe
          Effectivement, je n'ai pas pris le temps de bien regarder le code, désolé !
          Bonne journée