Affichage formulaire depuis autre formilaire sanc

DAN247 Messages postés 30 Date d'inscription samedi 29 octobre 2016 Statut Membre Dernière intervention 31 mai 2019 - Modifié le 8 févr. 2018 à 19:17
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 - 9 févr. 2018 à 17:49
Bonjour à tous.
J'ai une petite application de sauvegarde.
Je démarre sur un premier formulaire qui me permet d'effectuer mes sauvegarde ou de cliquer sur le bouton me permettant d'aller sur la page de création ou de modification des paramètres de sauvegarde.
Tout se passe bien dans mon programme sauf que j'ai un petit problème.
Si le fichier des paramètres n'existe pas je le détecte dans le premier formulaire de sauvegarde je veux ouvrir le formulaire de création ou de modification des paramètres.
Cette partie ne se fait pas en cliquant sur un bouton mais automatiquement dans le formilaire de sauvegarde ou je detecte l'absence du fichier PARAM.txt.
Problème : le formulaire de sauvegarde reste ouvert au-dessus du formulaire de paramétrage et de création du fichier des paramètres.
Comment puis-je procéder pour que le formulaire de sauvegarde ne s'affiche pas alors que je veux afficher le formulaire de création du fichier paramétrage ?
D'avance merci de votre aide.
Ci-dessous voici mon code
   Private Sub PARAM_Click(sender As System.Object, e As System.EventArgs) Handles PARAM.Click
        Me.Hide()
        PARAMRTRE.Show()
          Exit Sub
    End Sub


    Private Sub SAUVEGARDE_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
       
        If File.Exists(Partition & "PARAM.txt") = False Then
          
           Me.Hide()
        PARAMRTRE.Show()
            Exit Sub
        End If
        If File.Exists(Partition & "SAUVEUSB.txt") = True Then
       ......................   
           
    End Sub

4 réponses

Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
8 févr. 2018 à 17:52
Bonsoir
avec showdialog peut être
https://msdn.microsoft.com/fr-fr/library/c7ykbedk(v=vs.110).aspx

Ça va faire passer celui que tu veux voir par dessus et le bloquer au premier plan.

Si ça ne te convient pas, j'ai une autre solution, mais c'est moins simple car tu fais ta détection dans le load et on ne peut pas annuler un load.
0
DAN247 Messages postés 30 Date d'inscription samedi 29 octobre 2016 Statut Membre Dernière intervention 31 mai 2019 2
8 févr. 2018 à 18:55
Bonjour.
Merci de ton message mais cela ne fonctionne pas, à moins que je ne sache pas utiliser correctement le code que tu m'as indiqué.
C'est tout de même questionnant de ne pas pouvoir fermer le formulaire en cours pour en ouvrir un autre sans passer par un bouton.
J'imagine que ton autre solution est assez compliquée, merci en tout cas d'avoir pris le temps de lire mon message.
0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
8 févr. 2018 à 19:10
Déjà dans ton code tu ne fermes pas le form, tu le caches (Hide et pas Close).
Ensuite c'est tout à fait possible, mais pas pendant le Load. Cet événement signale que l'affichage de ton formulaire est en cours et ça, ça ne s'arrête pas.

Soit on ne lance pas l'affichage du formulaire, soit on attend qu'il soit affiché avant de le fermer.
La première solution me semble plus logique (c'est pas la peine d'afficher un truc pour ensuite l'effacer), c'est donc ce que je vais développer.

Dans SAUVEGARDE, tu vas ajouter une méthode publique.
    Public Function Afficher() As Boolean

        If File.Exists(Partition & "PARAM.txt") Then
            Me.Show() 'si le fichier exxiste on affiche le formulaire
            Return True ' on retourne vrai, pour le cas ou ça interresse celui qui a voulu afficher
        End If

        PARAMRTRE.Show() 'sinon on affiche l'autre
        Return False 'et on retourne faux

    End Function

Et au lieu d'afficher SAUVEGARDE avec
SAUVEGARDE.Show()
tu le fais avec
SAUVEGARDE.Afficher()


Pour plus d'infos sur les interactions entre Form http://codes-sources.commentcamarche.net/faq/11107-interactions-entre-form-en-net-c-et-vb-net.
Si tu préfères attendre que le formulaire soit affiché et bien je te montrerai.
0
DAN247 Messages postés 30 Date d'inscription samedi 29 octobre 2016 Statut Membre Dernière intervention 31 mai 2019 2
9 févr. 2018 à 17:10
Bonjour.
Merci pour ton message.
J'ai tout de même réussi à contourner le problème d'une autre façon.
En mettant la hauteur et la largeur de sauvegarde à zéro du coup il m'affiche uniquement le formulaire paramètres.
Qu'en penses-tu ?
A+.
0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
9 févr. 2018 à 17:49
Si tu sais reactiver ce formulaire ensuite et pas en initialiser un autre pourquoi pas.
Cependant dans la barre des tâches l’utilisateur verra qu’il y a un formulaire qui se balade.
0
Rejoignez-nous