Problème lors d'appel de fonction dans page de démarrage.
Bonjour à tous.
Je bidouille un logiciel qui manipule des fichiers XML.
Mon problème est le suivant :
J'ai fais une page de démarrage en fondu, dans laquelle s'initialise toutes les données de mon logiciel (lecture des fichiers XML pour les paramètres données de comptes utilisateurs etc.)
dans ma page de démarrage j'ai donc ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| Public Class Demarrage
Dim Paramètres As Propriétés = LitDataXMLPropriétés("Propriétées.xml") 'Créé une classe "Paramètres" Propriétés qui contient les données du fichier "Propriétées.xml"'
Public Function LitDataXMLPropriétés(ByVal filename As String) As Propriétés 'Créé la fonction lecture du fichier xml'
Try 'Essaye le code suivant : '
Using objStreamReader As New StreamReader(filename) 'Utilise le flux de données du fichier "filename"'
Try 'Essaye le code suivant : '
Return DirectCast((New XmlSerializer(GetType(Propriétés))).Deserialize(objStreamReader), Propriétés) 'Sérialise le fichier xml'
Catch ex As Exception 'Si l'essais échoue'
MessageBox.Show("Echec de la lecture." & ex.Message) 'Affiche un message d'erreur'
End Try 'Fin de l'essais du code'
End Using 'Coupe toutes ressources utilisées pour créer le flux.'
Catch ex As Exception 'Si le fichier n'existe pas'
Paramètres = New Propriétés 'Créé un nouveau fichier "Propriétés"'
EcritDataXMLPropriétés("Propriétées.xml", Paramètres) 'L'écrit'
System.Windows.Forms.Application.Restart() 'Redémarre l'application'
End 'Ferme l'application en cours'
End Try 'Fin de l'essais du code'
Return Nothing
End Function
Public Sub EcritDataXMLPropriétés(ByVal filename As String, paramètres As Propriétés)
Try
Using objStreamWriter As StreamWriter = New StreamWriter(filename)
Try
Dim xsPropriety As New XmlSerializer(GetType(Propriétés), New XmlRootAttribute("Propriétés"))
xsPropriety.Serialize(objStreamWriter, paramètres)
Catch ex As Exception
MessageBox.Show("Echec de l'écriture." & ex.Message)
End Try
End Using
Catch ex As Exception
MessageBox.Show("Fichier inaccessible." & ex.Message)
End Try
End Sub
...
End sub |
Ceci est un fragment du code complet.
Dans ma feuille de paramètres j'ai ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Private Sub Boutton_Valider_Click(sender As Object, e As EventArgs) Handles Boutton_Valider.Click
If Check_Autor_Modif_MDP.Checked = True Then
Demarrage.Paramètres.Act_MDP.Autor_MDP = True
Else
Demarrage.Paramètres.Act_MDP.Autor_MDP = False
End If
Demarrage.EcritDataXMLPropriétés("Propriétées.xml", Paramètres)
Me.Close()
End Sub
Private Sub Param_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If Demarrage.Paramètres.Act_MDP.Autor_MDP = True Then
Check_Autor_Modif_MDP.Checked = True
Else
Check_Autor_Modif_MDP.Checked = False
End If
End Sub |
Mon problème est que lors de l'appel à mes fonctions dans ma page de demarrage, le logiciel lance une seconde fois l'application. Une idée quelqu'un svp ?
Autre chose, j'ai conté ce phénomène en tapant le code dans toutes mes pages mais c'est un peut lourd à la fin... J'ai aussi essayé de taper une seule fois ce code dans une "page de code" sous visual studio 2013 mais je n'arrives pas à récupérer les données de dans cette feuille. Voila merci par avance de votre aide et vos lumières :D!