gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 2014
-
8 sept. 2008 à 20:30
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 2014
-
9 sept. 2008 à 16:23
le code suivant me renvoie une exeption et je ne sais plus quoi faire
Dim sdf As New SaveFileDialog
With sdf
.AddExtension = True
.DefaultExt = ".record"
.FileName = Now.ToLongDateString
.Filter = "recorder (*.record)|*.record"
End With
If sdf.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim Serializer As New
Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim DataFile As New FileStream(sdf.FileName,
FileMode.Create, FileAccess.Write, FileShare.None)
Serializer.Serialize(DataFile, eventsi)
DataFile.Close()
' Data = Nothing
End If
voici le détail de l'exeption
Le type 'System.Windows.Forms.MouseEventArgs' dans l'assembly
'System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089' n'est pas marqué comme sérialisable.
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 9 sept. 2008 à 15:43
Bonjour,
Solution (enfin projet) reçue.
Je maintien que si tu utilises des attributs pour enregistrer les valeurs contenues dans les EventArgs que tu utilises, ça devrait marcher.
Ensuite, tu peux tout mettre dans une Class (éventuellement dérivée en plusieurs autres) afin de faciliter la récupération.
Petit conseil, pour plus de perf (enfin si besoin), préfère DirectCast à la place de CType, cela est plus rapide, mais réclame que le cast soit direct et non adaptatif (Long -> Integer est interdit par ex).
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 9 sept. 2008 à 16:17
Bonjour,
De ce que j'ai vu, tu utilises les EventArgs afin de mémoriser les paramètres de l'event.
Il te faut juste créer des attributs, une/des classe(s) (selon le besoin) sérialisable(s) afin de mémoriser les paramètres sans passer par les EventArgs.
Exemple :
Private mMousePos as Point
---
Sub New (... e as EventArgs ...)
...
if TypeEvent=MouseMove Then
mMousePoint=new Point(e.x, e.y)
End if
...
End sub
---
Public readonly property MousePos as Point
Get
Return mMousePos
End get
End Property
Puis pour régénérer l'event :
MouseHook.X=mEvent.MousePos.X