Comment declarer une variable avec static et WithEvents?
Bonsoir,
Mon problème est que je fait référence à une instance de chart dejà instancié et donc morte (nothing).
La solution pour prolongé la durée de vie de mon instance serait de la déclarer avec "static", sauf que je doit impérativement la déclarer avec WithEvents et que ces deux options: "Static" et "WithEvents" sont impossble à réaliser en même temps.
Comment faire?
Code:
Dim WithEvents YMDChart As Chart
declarer un control comme variable partage
bonjour gualino
Je ne vois pas pourquoi tu as ces difficultes .
Declarer un controle comme variable shared withevents ne pose pas de probleme comme le montre ce code si c'est au niveau d'un class ou module.......sauf qu'il faut structurer correctement l'appli et mettre cette variable dans un class Gualino bien identifie........sous peine d'erreurs de logique ou oubli fatales......
L'erreur que tu as commis c'est que tu declare un controle chart comme shared dans une sub ,ce n'est pas admis.
La corne MSDN doc Fr:
Citation:
Règles
Contexte de déclaration. Vous pouvez utiliser Shared seulement au niveau du module. Cela signifie que le contexte de déclaration d'un élément Shared doit être une classe ou une structure, et ne peut pas être un fichier source, un espace de noms, ou une procédure.
voici un code ou est inclus un controle microsoft.chart Version 6(com)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
Imports AxMSChart20Lib
Public Class Form1
' Declare a WithEvents variable au niveau classe.
Shared WithEvents frm As New Form
Shared WithEvents myButton As New Button
Shared WithEvents myChart As New AxMSChart
Private Shared Sub myButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles myButton.Click
End Sub
Private Shared Sub frm_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles frm.Click
End Sub
Private Shared Sub myChart_DonePainting(ByVal sender As Object, ByVal e As System.EventArgs) Handles myChart.DonePainting
End Sub
End Class |
Voici la facon de proceder dans ton cas:
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
|
Public Class Form1
' Pas besoin de le declarer car la classe GualinoChart est publique.
' et accessible partout dans ton projet et meme à l'exterieur
' On n' a besoin d'une instance.Le nom de classe suffit pour les
' membres "shared" dans notre cas d'espece "myButton"........
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show(GualinoChart.myButton.Text)
End Sub
'la sub ou tu l'utilise
Private Shared Sub maSub()
MessageBox.Show(GualinoChart.myButton.Text)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
MessageBox.Show(GualinoChart.myButton.Text)
End Sub
End Class
'classe dedie au controle MSCHART partage
Public Class GualinoChart
' Declare a WithEvents variable(ici c'est mschart qu'il faut mettre).
Public Shared WithEvents myButton As New Button
End Class |
bonne soiree et bon code.......