Enregistrer toutes les propriétées d'un contrôle dans un fichier txt
cs_veler
Messages postés723Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention23 janvier 2013
-
28 août 2007 à 17:31
cs_veler
Messages postés723Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention23 janvier 2013
-
4 sept. 2007 à 10:54
Salut à tous, c'est encore moi
je me suis lancé dans un truc assé compliqué, et pas facile de s'en sortir
alors je m'accroche, et j'y arrive qu'à moitier.
Je m'explique:
mon bute est d'enregistrer toutes les propriétées d'un contrôle dans un fichier texte. le principe est simple, mais le problême est qu'il m'arrive plein de bourdes: pour certaine propriété, faut une valeur integer, pour d'autre, string, et au bout, on si retrouve pas.
mon code, c'est tous simplement ouvrir le fichier, avec la commande PrintLine, mettre la valeur MonConrole.BorderStyle.ToString par exemple, puis refermer.
le vrai blême est qu'il est possible que l'on ne connaisse pas le type de contrôle que c'est, et pour faciliter la tache, je cherche un truc qui serait applicable pour tous les contrôle, sans avoir besoin de faire réelement gaffe au type de contrôle
cs_veler
Messages postés723Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention23 janvier 20132 2 sept. 2007 à 09:57
??? dans mes setting? pas, c'est parce que c'est pas pour être utilisé vis a vis de mon appli, mais de l'utilisateur, il créer des bouton, des label... et j'aimerais qu'on puisse enregistrer tous ça.
Bon, sur un forum, j'ai découvert un bout de code qui ets le suivant:
Private Sub EnregistrerToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EnregistrerToolStripButton.Click
Dim TmpName2 As String = Me.TreeView1.SelectedNode.Text.ToString 'On decoupe proprement le nom du fichier ou repertoire
TmpName2 = Microsoft.VisualBasic.Replace(TmpName2, "", "")
Dim SW As System.IO.StreamWriter = New System.IO.StreamWriter(Application.StartupPath & "\Temp\Dialog" & TmpName2)
SW.Write(GetChildrenDef(Me))
SW.Close()
MessageBox.Show("Terminé", "EnumControls", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Sub
Private Function GetChildrenDef(ByVal Container As Object) As String
Dim Buffer As String = ""
For controlnumber As Integer = 0 To Me.Concept11.Controls.Count - 1
For Each ctrl As Control In Me.Concept11.Controls
Dim CtrlType As System.Type = ctrl.GetType()
Buffer &= ctrl.Name & "(" & CtrlType.FullName & ")" & vbCrLf
Dim PI As System.Reflection.PropertyInfo() = CtrlType.GetProperties()
For i As Integer = 0 To PI.Length - 1
Buffer &= " " & PI(i).Name & "="
Dim V As Object = PI(i).GetValue(ctrl, Nothing)
If V IsNot Nothing Then Buffer &= V.ToString
Buffer &= vbCrLf
Next
If ctrl.HasChildren Then Buffer &= GetChildrenDef(ctrl)
Next
Return Buffer
Next
End Function
Il est très bien et est exactement ce que je cherche mais il y a un souci que je n'arrive pas réparé depuis maintenant 2 jours:
comme je le disait, il enregistre bien s'il y a un bouton, un label, un panel, mais il enregistre plus du tous des que je met un label dans un panel par exemple. Voyez ce que je veux dire? Et je ne trouve pas de soluce, je ne peut même pas vous donné le rapport du déboguer car je suis obligé de faire un "Terminé maintenant" pour fermer l'application. Aidez moi, je vous en supplit!(lol)
cs_veler
Messages postés723Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention23 janvier 20132 4 sept. 2007 à 10:36
Salut, j'ai déja regardé plsieur fois il y a déja plusieur jours, mais rien ne correspond, le seul code que j'ai trouvé, il est en C# et quand je le convertit, j'ai une centaine d'erreur.