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 :
Ceci est un fragment du code complet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Dans ma feuille de paramètres j'ai ceci :
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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!
Partager