cs_spoty
Messages postés17Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention11 septembre 2008
-
10 sept. 2008 à 12:27
cs_spoty
Messages postés17Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention11 septembre 2008
-
11 sept. 2008 à 12:41
Bonjour
J'ai un petit code pour tester la modification de la forme de Form ou d'un controle , mais ça plante au 3 ° clic et je me demande pourquoi : Bug de VB ou Bug de Moi ?
Voila le code à mettre dans Form1 Si vous voulez tester.
Public
Class Form1Dim Rond1 AsNew System.Drawing.Drawing2D.GraphicsPath
Dim reg1, reg0 AsNew Region
Dim Choix AsBoolean = True
PrivateSub Form1_Click(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Click
If Choix ThenMe.Region reg1 ElseMe.Region reg0
Choix = Not Choix
EndSub
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 10 sept. 2008 à 13:53
Salut,
Apparemment, la région n'est utilisable qu'une fois. Il suffit donc de la recréer à chaque fois:
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
Static Choix As Boolean = True
If Choix Then
Dim Rond1 As New System.Drawing.Drawing2D.GraphicsPath
Rond1.AddEllipse(3, 3, 190, 190)
Me.Region = New System.Drawing.Region(Rond1)
Else
Me.Region = Nothing
End If
cs_spoty
Messages postés17Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention11 septembre 2008 10 sept. 2008 à 16:21
Salut Kevin.Ory
Bien vue .
Mais pourquoi n'y ai-je pas pensé.
C'est dommage d'être obligé de recréer une même region !
Je viens de tester ça marche avec
If
choix ThenMe.Region reg1.Clone ElseMe.Region Nothing
et avec un array de region "reg(i) .clone " ça marche aussi.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 10 sept. 2008 à 16:38
Salut
Dim reg1, reg0 AsNew Region
reg1 n'est pas déclarée en NEW REGION
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_spoty
Messages postés17Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention11 septembre 2008 10 sept. 2008 à 17:47
salut PCPT
A ma faible connaissance d'amateur je dirais que
Non
Dim reg1, reg0 As New Region
est equivalent a
Dim reg0 As New Region
Dim reg1 As New Region
sinon exception au debogage
{"La référence d'objet n'est pas définie à une instance d'un objet."}
En plus ça marche 1 fois pour chaque region (reg0 et reg1)mais pas plus.
En nouvel appel une region doit être recrée. Bisard mais c"est comme ça !!!
Bonne journée
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_spoty
Messages postés17Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention11 septembre 2008 10 sept. 2008 à 19:36
re,
C'est pas une petite bêtise, c'est une aubaine, puisque j'ai pu étaler mon savoir
Je connais , j'ai assez de mal pour passer de VB6 à VS2005 , j'ai pas encore osé une incursion vers 2008.
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 11 sept. 2008 à 05:21
Ben moi j'vais vous dire que le Newil ne faut pas le mettre
Dim reg1, reg0 As <strike>New</strike> Region
reg1 = New System.Drawing.Region(Rond1)
reg0 = Me.Region
Il ne faut pas appeler initialiser 2 fois la même variable
spoty > VS2003 ou VS2008, ça ne change rien au niveau code. Simplement que dans 2008 il y a plus de trucs comme wpf, linq... mais rien ne t'oblige à les utiliser. Un code VB2003 est compatible avec VB2008.