Afin de pouvoir utiliser ce code, il vous faudra :
- un fichier Settings.settings (généré par VS) provenant du projet ou d'un projet dont vous souhaitez modifier le contenu des paramètres
- faire référence à System.Xml
- faire un Imports de System.Xml
- créer une nouvelle solution
Il y a aussi une mini partie permettant de démarrer/arrêter un service dont on connait l'attribut "Service Name".
Ce code utilise une textbox pour contenir et attribuer la valeur du Setting voulu mais ce n'est pas le seul outil qui vous est accessible...
Afin d'enregistrer les changements, validez la saisie par la touche "Entrer"
Source / Exemple :
Imports System.Xml
Public Class FormServiceConfiguration
Private srvController As New ServiceController("ServiceExtraction")
Private documentXML As New XmlDocument
Private node As XmlNode
Private Const CHEMIN As String = "C:\Documents and Settings\xxx\Mes documents\Visual Studio 2008\Projects\Test\My Project\Settings.settings"
''' <summary>
''' Menu Quitter.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks>Quitter l'application</remarks>
Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click
Application.Exit()
End Sub
''' <summary>
''' DemarrerService.
''' </summary>
''' <remarks>Démarre le service "Service Extraction"</remarks>
Private Sub DemarrerService()
srvController.Start()
srvController.Refresh()
End Sub
''' <summary>
''' ArretService.
''' </summary>
''' <remarks>Arrête le service "Service Extraction"</remarks>
Private Sub ArretService()
srvController.Stop()
srvController.Refresh()
End Sub
''' <summary>
''' btnArret_Click.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks>Au clic sur le bouton Arreter</remarks>
Private Sub btnArret_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnArret.Click
Me.ArretService()
End Sub
''' <summary>
''' btnDemarrer_Click.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks>Au clic sur le bouton Demarrer</remarks>
Private Sub btnDemarrer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnDemarrer.Click
Me.DemarrerService()
End Sub
''' <summary>
''' FormServiceConfiguration_Load.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks>Au chargement de la form</remarks>
Private Sub FormServiceConfiguration_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.LireSettings()
End Sub
Private Sub LireSettings()
Try
documentXML.Load(CHEMIN)
For Each Me.node In documentXML.Item("SettingsFile").Item("Settings")
If Me.node.Name = "Setting" Then
'Assigne le contenu de la node ayant pour attribut name "nomReseau" à la textbox
If Me.node.Attributes.GetNamedItem("Name").Value = "nomReseau" Then
If Me.node.LastChild.Name = "Value" Then
txtNomReseau.Text = Me.node.LastChild.InnerText
End If
End If
'Assigne le contenu de la node ayant pour attribut name "nomPartage" à la textbox
If Me.node.Attributes.GetNamedItem("Name").Value = "nomPartage" Then
If Me.node.LastChild.Name = "Value" Then
txtPartageReseau.Text = Me.node.LastChild.InnerText
End If
End If
End If
Next Me.node
Catch ex As XmlException
MessageBox.Show(ex.Message, "Problème XML", MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch ex As Exception
MessageBox.Show(ex.Message, "Problème", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub EcrireSettings()
Try
documentXML.Load(CHEMIN)
For Each Me.node In documentXML.Item("SettingsFile").Item("Settings")
If Me.node.Name = "Setting" Then
If Me.node.Attributes.GetNamedItem("Name").Value = "nomReseau" Then
If Me.node.LastChild.Name = "Value" Then
Me.node.LastChild.InnerText = txtNomReseau.Text
End If
End If
'Assigne le contenu de la node ayant pour attribut name "nomPartage" à la textbox
If Me.node.Attributes.GetNamedItem("Name").Value = "nomPartage" Then
If Me.node.LastChild.Name = "Value" Then
Me.node.LastChild.InnerText = txtPartageReseau.Text
End If
End If
End If
Next Me.node
documentXML.Save(CHEMIN)
Catch ex As XmlException
MessageBox.Show(ex.Message, "Problème XML", MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch ex As Exception
MessageBox.Show(ex.Message, "Problème", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub txtPartageReseau_Validating(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNomReseau.Leave
Me.EcrireSettings()
End Sub
Private Sub txtNomReseau_Validating(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNomReseau.TextChanged
Me.EcrireSettings()
End Sub
End Class
Conclusion :
Deux méthodes :
LireSettings permettant d'assigner le contenu de <Value></Value> correspondant à l'attribut name voulu dans une textbox.
EcrireSettings permettant d'assigner le contenu d'une textbox dans le <Value></Value> défini par l'attribut name dans votre code.
Sont fournis dans le source : le code designer et le code .NET.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.