Bon, j'ai un peu de mal ici. Je crée une fenêtre de connexion pour une application, mais j'essaie d'obtenir que l'application se connecte automatiquement (c.-à-d. Exécute les fonctions qui se produisent lorsque l'utilisateur se connecte) au démarrage, sans afficher l'écran de connexion, si les paramètres avez déjà un email et un mot de passe stockés. J'ai une notification Icône System Tray qui s'affiche lorsque l'application est en cours d'exécution et lorsque le formulaire n'est pas visible, une notification s'affiche pour que l'utilisateur sache qu'il est toujours en cours d'exécution et clique sur l'icône pour ouvrir l'écran de connexion.Procédure de connexion automatique (Masquer le formulaire) vb.NET Windows Forms
Regardez le code suivant. Je sais que cet événement If If est appelé et fonctionne correctement, car il exécute tout à l'intérieur de l'instruction SAUFmasquant le formulaire. Pourquoi ne change-t-il pas d'invisible? J'ai aussi essayé Me.Hide, et le même problème. La notification de ballon apparaît, les zones de texte remplissent les données précédemment stockées ... mais la forme reste visible ...
Private Sub RadFrmLogin_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Checks settings to see if email and password have already been stored and enters them into text fields, proceeds to automatically update access list
If Not String.IsNullOrEmpty(My.Settings.Email) And Not String.IsNullOrEmpty(My.Settings.Password) Then
TxtEmail.Text = My.Settings.Email
TxtPassword.Text = My.Settings.Password
Me.Visible = False
'Displays Balloon Tip
ntfySystemTrayIcon.ShowBalloonTip(800)
End If
End Sub
Comme une note supplémentaire, j'ai ajouté un bouton de test pour cacher la forme, et fonctionne parfaitement:
Private Sub BtnHide_Click(sender As Object, e As EventArgs) Handles BtnHide.Click
'Hides form(for testing notification tray icon and balloon tip
Me.Visible = False
ntfySystemTrayIcon.ShowBalloonTip(1000)
End Sub
est cette ligne 'Me.Visible = False 'Toujours être touché quand vous vous y attendez? Avez-vous franchi et vérifié que toutes les lignes sont touchées? Avez-vous essayé de supprimer 'ntfySystemTrayIcon.ShowBalloonTip (800)' du gestionnaire Load et de voir si le formulaire est invisible? – djv
Oui, oui et oui. Il est toujours touché, et j'ai même complètement enlevé l'extrémité du ballon, et cela apparaît toujours. J'ai traversé et j'ai remarqué que le formulaire devient visible à l'étape End Sub. Je ne peux pas comprendre pourquoi c'est. J'ai aussi changé un peu, et j'ai appelé un autre sous qui a fait le reste du processus, et en mettant le formulaire invisible dedans, mais après le sous, il retourne au gestionnaire de charge et atteint l'étape End Sub, et la forme devient visible. Est-il possible que Load Handlers soit automatiquement défini sur visible = True à la fin du processus de chargement? –
Donc, après avoir regardé les propriétés de l'événement pour le formulaire, j'ai trouvé un appelé: Visibilité modifiée. Après un instant, je l'ai fait appeler le gestionnaire btnHide.click pour cacher le formulaire. Le formulaire clignote pendant une milliseconde, puis se cache, affichant l'icône de notification. Le fait de passer en revue montre que le gestionnaire de charge rend définitivement la forme visible à l'étape End Sub, pour une raison quelconque, donc c'est une solution temporaire, pense-t-il. –