Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 28 nov. 2009 à 18:00
Sinon Flocreate tu as toujours la source de Sid_mohamed qui est la premiére versoin de ce control, et qui elle est en VB6, donc OCX ^^
Voila ++
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 27 nov. 2009 à 23:04
Salut,
La sources est une source .Net et est incompatible avec VB6, désolé...
Quand au contrôle en lui même, la classe n'est pas définie visible par COM, mais de toute façon je ne sais même pas si on peut importer des dll en tant que contrôles sous vb6, je ne peu pas tester malheureusement je suis sous Vista X64.
Cordialement, Mayzz.
Flocreate
Messages postés300Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention27 mai 20123 27 nov. 2009 à 22:49
bonjour a tous, je me sens tout nul avec mon VB6 quand je vois le code ^^
juste une question quand même. Si je souhaite utiliser ce tres beau contrôle open source en VB6 je fait comment ? Y a t il un moyen ? Un ocx est il créable ? Si oui merci de le compiler et de le joindre au zip. (je n'en ai vu aucun dedans)
merci d'avance et bravo pour le travail.
+1 pour le open source VB ^^
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 9 nov. 2009 à 17:35
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 9 nov. 2009 à 13:01
Conseil > Implements ISerializable
Voir MSDN
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 9 nov. 2009 à 11:28
salut Mayzz, je vois que la reléve est assuré ! Merci claudetom pour la mise à jour, j'ai pas une minute en ce moment pour décortiquer le code, donc j'essaye le tiens. Un grand merci à vous deux.
Là je me bas pour enregistrer des valeurs en binaire avec serialize, cela marche nickel pour un tableau à n dimension, mais j'arrive pas à mélanger des info autre que ce maudit tableau :p
@++
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 8 nov. 2009 à 20:09
Salut ADN,
Je suis désolé pour les bugs, comme je l'ai dis plus haut, il y a beaucoup de copié/collé dans mon code, et j'ai fais cela en très peu de temps, je suis tjs débordé donc je n'ai pas bien le temps de tout revoir, mais il est fort possible que je me sois planté.
Amicalement, mayzz.
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 8 nov. 2009 à 18:31
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 8 nov. 2009 à 17:30
Tiens un soucis mayzz, lorsque j'écris cela le checked est trés mal mis à jour, voir carrément à l'envers (si pas coché = true) c'est moi ou bien ?
the code :
Private Sub BP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
For Each ctrl As Control In Controls 'pour chaque control sur la form
'si ce control est un mayze control
If TypeOf (ctrl) Is Net_2009.MM_Checkbox Then
Dim ce_bp = CType(ctrl, Net_2009.MM_Checkbox) ' cast le control en checkbox
Dim tag As String = CType(sender, Net_2009.MM_Checkbox).Tag.ToString ' cast le sender en checkbox, puis récupére le tag en string
If ce_bp.Tag.ToString = tag Then 'detect le checked
If ce_bp.Checked Then
'afficher la courbe correspondante au tag
affiche_courbe(CInt(tag))
zg1.AxisChange()
Me.Refresh()
Else
'cacher la courbe correspondante au tag
cache_courbe(CInt(tag))
zg1.AxisChange()
Me.Refresh()
End If
End If
Else
End If
Next
End Sub ' affiche ou cache les courbes
avant avec les Bp simple cela marchais trés bien :(
une idée ?
++
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 6 nov. 2009 à 08:09
Pas de soucis, tu as déja bien donné !
@++
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 5 nov. 2009 à 17:50
Oui effectivement le code n'est paas très optimisé, malheureusement je manque de temps (comme toujours) pour faire une mise à jour.
CLAUDETOM a amélioré mon code, mais je n'ai malheureusement pas non plus le temps de regarder et de le poster, vous pouvez lui demander la source en mp, je ne pense pas qu'il aura des rétiscences à vous la donner.
Cordialement, Mayzz.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 5 nov. 2009 à 17:18
oui j'ai peu de bande blanche sur un grand bouton, lorsque je clic trop souvent dessus, j'ai essayé de mettre le double buffer sur la form principal mais cela fait pareil, enfin bon ya un paquet de bouton aussi dessus.
@+ pour la mise à jour
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 2 nov. 2009 à 13:17
@Paraglider > Le zip est bon... Peut être une erreur au téléchargement (CRC) ?
@astouz2000k > Effectivement on ne peut pas tout avoir du premier coup ! Mais le databinding est une fonctionnalité importante et j'en prend note pour la prochaine maj.
J'essayerais aussi de trouver une façon de gérer la transparence, de supprimer les propriétés ne servant plus, et surtout de mieux gérer le redraw.
++
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 2 nov. 2009 à 12:51
chez moi c'est bon, ou alors il est resté dans le cache d'IE.
Paraglider
Messages postés35Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 6 février 20141 2 nov. 2009 à 12:20
Bonjour,
Fichier zip vide : 168ko !!
Jacques
astouz2000k
Messages postés50Date d'inscriptionsamedi 2 juillet 2005StatutMembreDernière intervention 2 mai 2013 2 nov. 2009 à 12:09
Tous simplement super !!!!!!!!!!!!!
Manque juste la possibilité de lié l'etat avec une base de donnée (comme le radio_button d'origine)
nikel sinon...
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 2 nov. 2009 à 07:22
je sens que ce control va froller la perfection si chacun rajoute ça petite touche perso ;)
Moi j'ai juste renommé les propriétés avec un "_" devant pour les faire apparaitre en haut de liste, mais bon je préfére la méthode de claudetom.
Aprés mise à jour, il deviendra un trés bon Tuto sur les user controls.
@++ et bonne semaine à tous.
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 1 nov. 2009 à 21:02
Pour les cacher design et intellisense:
'********************************************
'Cache les propriétés non Utilisés
_
Public Overrides Property BackColor() As Color
Get
Return Color.Transparent
End Get
Set(ByVal value As Color)
MyBase.BackColor = Color.Transparent
End Set
End Property
_
Public Overrides Property BackgroundImageLayout() As System.Windows.Forms.ImageLayout
Get
Return Windows.Forms.ImageLayout.None
End Get
Set(ByVal value As System.Windows.Forms.ImageLayout)
MyBase.BackgroundImageLayout = Windows.Forms.ImageLayout.None
End Set
End Property
_
Public Overrides Property BackgroundImage() As Image
Get
Return MyBase.BackgroundImage
End Get
Set(ByVal value As Image)
MyBase.BackgroundImage = value
End Set
End Property
_
Public Shadows Property BorderStyle() As BorderStyle
Get
Return Windows.Forms.BorderStyle.None
End Get
Set(ByVal value As BorderStyle)
MyBase.BorderStyle = Windows.Forms.BorderStyle.None
End Set
End Property
sinon j'ai aussi mis dans InitializeComponent
MyBase.SetStyle(Windows.Forms.ControlStyles.SupportsTransparentBackColor, True)
MyBase.BackColor = Color.Transparent
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 1 nov. 2009 à 20:09
Ah oui ! Effectivement, j'ai pas filtrer, bah... après c'est pas grand chose, un ligne de code.
Pour les props tu les a masqués comment à partir du designer ? A vrais dire je recherche un moyen de masquer les propriétés (autres que Private overrides), mais pour les masquer aussi bien dans la fenêtre de propriétés que dans le code behind (intellisense).
Encore merci, pour toutes ces félicitations (et pour le verre virtuel :O)).
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 1 nov. 2009 à 19:15
Je tenais à te féliciter car franchement beau boulot que tu as fais
ont te paye tous un coup ;)
et avec plaisir
sinon concernant ton code j'ai juste masqué dans les property les propriétés qui ne servent pas comme backcolor etc..
sinon une question concernant le Pushbouton il marche avec le clique droit et gauche ?
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 1 nov. 2009 à 18:52
Le Morbihan (si je ne me trompe pas) ca fait un peu loin pour moi (03) ^^
Mais merci quand même !
J'en ai profité un peu car aujourd hui on est dimanche, mais le développement est une passion alors le temps ne se compte pas.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 1 nov. 2009 à 17:27
Tu mérites vraiment que je te paye un coup ^^
3h du mat ! t'es fou, repose toi et bonne fin de week end, je regarde le résultat de suite
Merci pour tout, kenavo
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 1 nov. 2009 à 03:21
Bon c'est OK pour la maj... (J'ai bossé dessus une partie de la nuit ^^), la liste des ajouts est plus haut.
Pour ce qui est du glossy sur le contrôle, j'ai testé mais c'est vraiment très laid, ca n'a pas un beau rendu, donc je ne l'ai pas gardé.
Voila @+
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 31 oct. 2009 à 18:53
@claudetom > L'anchor marche chez moi, sauf qu'en mode concepteur de vu le refresh ne se fait pas bien, mais à la compile tout redevient normale. Bien entendu il ne fonctionne pas si le TextVisible est sur False étant donnée que le contrôle se redimentionne proportionnelement.
Pour ce qui est du glossy sur tout le contrôle, c'est pas très complexe non plus, à voir...
@m_simohamed > Merci, beaucoup pour tous ces compliments, tu as fais du bon boulot aussi pour la version vb6, c'est pas aussi simple qu'en .Net alors je te retourne le chapeau !
@Adn56 > Merci aussi pour les compliments :) Pour ce qui est des états en plus, je vais voir, les possibilités sont vastes, je vais faire un pelle mêlle de toutes vos idées et essayer de sortir une version amélioré, avec toutes ces fonctionnalités (dans la mesure du possible et de mon temps libre), je vais aussi optimiser le code, car les redraw ne se font pas comme il le devraient, essayer de sortir une version plus stable.
Je suis content d'avoir pu partager cela, tien moi au courant de la mise à jour de ton soft.
Merci encore et @+
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 31 oct. 2009 à 18:05
Tiens voila mon idée (même si reste bluffé, tu as pensé à tout)
Sur le backstyle, rajoute en plus de rect_border et round_border un NONE_mono et NONe_bi qui ne dessinerai que le cercle du BP, plus de déplacement, juste l'alumage du bp si clic. qui sera monostable si mono (actif que si clic) et bistable si bi (maintient de l'état, comme maintenant quoi)
Là tu tiens vraiment un truc de qualité PRO.
Faudrait dire à nix de faire une zone spéciale "super usercontrole" ^^ il y aura une trés bonne place.
M_simohamed peu être fier d'avoir permis cette sublime mise à jour de son control original.
Bonne prog, et à charge de rendre service à mon tour (si je peux :p)
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 31 oct. 2009 à 17:41
le résultat est magnifique ! Vivement la mise à jour. Un control qui ne me quitera plus ! vraiment merci.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 31 oct. 2009 à 17:36
j'ai pas encore testé, dsl;
mais je perso garde le clic actif sur tout le control, cela devient vite casse bonbon pour l'utilisateur d'être obligé de pointer le cercle. ou alors fait une option pour nous contanter tous les deux ^^
L'option de garder que le cercle pour un radio, voir un simple BP me parait fort utile. surtout si la taille globale peut être agrandi (style des BP Ø22 de l'industrie)
Encore bravo pour ta source, je vais la lire de suite (tu m'a donné envie ^^)
@++
m_simohamed
Messages postés32Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention 7 février 2009 31 oct. 2009 à 17:31
merci CLAUDETOM pour tes commentaires (mais je pense que tu en demande un peu trop :)) note ami Mayzz as fais prouve de bonne foie et a crée ce contrôle spécialement pour notre ami Adn56. Moi personnellement je tiens à le remercie et lui souhaite bonne continuation. Pour ce qui est contrôle Activex, eh bien, rien à dire, c’est très réussi et parfaitement bien dessiner (on avaient raison de lui faire confiance Adn56 et moi). Chapeau bas Mayzz :)
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 31 oct. 2009 à 16:37
Au faite, avec les OS Vista Seven, faudrait l'effet Glass sur l'ensemble du compo ;)
en ce moment c'est une la grande mode ;)
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 31 oct. 2009 à 16:35
5\ C'est à dire ?
met l'accrochage anchor sur Top, Left, Right puis ensuite resize ta form tu verras ;)
Sinon pour l'hilight juste limiter à la zone du bouton cela serait parfait !
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 31 oct. 2009 à 16:19
En tous cas grand merci pour toutes ces remarques ! (Constructives) ;O)
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 31 oct. 2009 à 16:17
Merci pour vos commentaires et pour la note ^^
@claudetom >
1\Pas trop complexe à faire je pense (au niveau du design).
2\Clignoté... possible aussi, mais ce pourrait être gourmand en ressources si plusieurs composant se trouvent sur le même formulaire. Je pensait plutôt à un hilight progressif en fondu lors passage de la souris et surligner le texte (option désactivable).
3\ Pour le bouton c'est justement ces couleurs (gris foncé et claire) qui donnent un effet 3D, les modifier ne servirait pas à grand chose. Pour l'autocheck, ok, je ferais la maj.
4\Effectivement, il devrait l'être mais je n'ai pas eu le temps d'optimiser le code (à vrais dire y' a près de 700 lignes juste pour le dessin, c'est le genre de contrôle à faire en WPF et non en winform). Pareil, dès que j'ai un moment j'y regarde.
5\ C'est à dire ?
pour ce qui est de tes améliorations, le pointeur pourquoi pas, de mon coté je vais voir pour l'hilight.
Pour le click gauche, c'est un oublis ^^, mais je pensait aussi limiter le click à la zone du bouton car actuellement c'est toute la zone du contrôle qui déclenche un changement d'état du contrôle.
Pour ce qui est du de la désactivation c'était volontaire, mais c'est vrais qu'il est toujours intéressant de savoir dans quel état se trouve le contrôle lors ce qu'il est désactivé.
En tous cas grand merci pour toutes ces remarques !
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 31 oct. 2009 à 15:29
Sinon voici ce que j'ai ajouté pour mon confort :
modif :
Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
'
If e.Button = Windows.Forms.MouseButtons.Right Then Exit Sub
...
Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
Me.Cursor = Cursors.Default
MyBase.OnMouseLeave(e)
End Sub
Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs) If Not Me.Cursor Cursors.Hand Then Me.Cursor Cursors.Hand
MyBase.OnMouseMove(e)
End Sub
Ci-dessous, car sinon aucun moyen de savoir dans quel etat est le bouton
Par contre reste désactivé pour l'utilisateur
Dans Protected Overridable Sub Redraw()
remplacer les lignes
'If Enabled Then <-- Commentaire
DrawButton(G, BGE, _ButtonColor, Pos, _Checked) 'Enabled)<-- changé par _Checked
'End If <-- Commentaire
'If Enabled Then <-- Commentaire
...
DrawButton(G, BGE, _ButtonColor, Pos, False)
'End If <-- Commentaire
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 31 oct. 2009 à 14:42
oupps!! ma note
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 31 oct. 2009 à 14:35
Bravo pour ce composant !
Tu veux des idées et bien en voici :
1) sur cette base en faire un compo style Radiobutton (une option supplémentaire à mettre)
lors du désigne en fonction de l'option du dessine soit le style RadioButton soit le style checkbox à bascule
2) Possibilité par option supplémentaire, de faire clignoter le voyant en mode ON
3) changer la couleur du bouton et fond de celui-ci en une autre couleur style gradient comme le compo précédent qui était une image, au lieu du simple gris
Pour l'option Radiobutton, il faut gérer l'option autochecked (comme le vrai compo) si plusieurs dans un groupbox ou autre conteneur.
4) voir pour que le fond du composant (l'usercontrol soit transparent) ce qui est pas le cas actuellement car si tu superpose 2 composants tu remarque autour le fond de celui-ci
5) en mode accrochage left et right etc.. ton contrôle se redessine mal
Voila pour les améliorations
Bonne continuation.
tovin
Messages postés164Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention14 août 20133 31 oct. 2009 à 11:51
Bonjour,
Bien mieux que le précédent.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 31 oct. 2009 à 08:19
wahou il a l'air vraiment joli. je regarde et test cela cette aprém. Merci encore pour ton travail.
28 nov. 2009 à 18:00
Voila ++
27 nov. 2009 à 23:04
La sources est une source .Net et est incompatible avec VB6, désolé...
Quand au contrôle en lui même, la classe n'est pas définie visible par COM, mais de toute façon je ne sais même pas si on peut importer des dll en tant que contrôles sous vb6, je ne peu pas tester malheureusement je suis sous Vista X64.
Cordialement, Mayzz.
27 nov. 2009 à 22:49
juste une question quand même. Si je souhaite utiliser ce tres beau contrôle open source en VB6 je fait comment ? Y a t il un moyen ? Un ocx est il créable ? Si oui merci de le compiler et de le joindre au zip. (je n'en ai vu aucun dedans)
merci d'avance et bravo pour le travail.
+1 pour le open source VB ^^
9 nov. 2009 à 17:35
http://www.vbfrance.com/forum/sujet-ENREGISTRER-TABLEAU-MAIS-AUSSI-LIGNES-TEXT-SIMPLES_1373030.aspx
@++
9 nov. 2009 à 13:01
Voir MSDN
9 nov. 2009 à 11:28
Là je me bas pour enregistrer des valeurs en binaire avec serialize, cela marche nickel pour un tableau à n dimension, mais j'arrive pas à mélanger des info autre que ce maudit tableau :p
@++
8 nov. 2009 à 20:09
Je suis désolé pour les bugs, comme je l'ai dis plus haut, il y a beaucoup de copié/collé dans mon code, et j'ai fais cela en très peu de temps, je suis tjs débordé donc je n'ai pas bien le temps de tout revoir, mais il est fort possible que je me sois planté.
Amicalement, mayzz.
8 nov. 2009 à 18:31
vous pouvez trouver la suite du source ici:
http://www.vbfrance.com/codes/MM-CHECKBOX-NET-2009-V4_50824.aspx
8 nov. 2009 à 17:30
the code :
Private Sub BP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
For Each ctrl As Control In Controls 'pour chaque control sur la form
'si ce control est un mayze control
If TypeOf (ctrl) Is Net_2009.MM_Checkbox Then
Dim ce_bp = CType(ctrl, Net_2009.MM_Checkbox) ' cast le control en checkbox
Dim tag As String = CType(sender, Net_2009.MM_Checkbox).Tag.ToString ' cast le sender en checkbox, puis récupére le tag en string
If ce_bp.Tag.ToString = tag Then 'detect le checked
If ce_bp.Checked Then
'afficher la courbe correspondante au tag
affiche_courbe(CInt(tag))
zg1.AxisChange()
Me.Refresh()
Else
'cacher la courbe correspondante au tag
cache_courbe(CInt(tag))
zg1.AxisChange()
Me.Refresh()
End If
End If
Else
End If
Next
End Sub ' affiche ou cache les courbes
avant avec les Bp simple cela marchais trés bien :(
une idée ?
++
6 nov. 2009 à 08:09
@++
5 nov. 2009 à 17:50
CLAUDETOM a amélioré mon code, mais je n'ai malheureusement pas non plus le temps de regarder et de le poster, vous pouvez lui demander la source en mp, je ne pense pas qu'il aura des rétiscences à vous la donner.
Cordialement, Mayzz.
5 nov. 2009 à 17:18
@+ pour la mise à jour
2 nov. 2009 à 13:17
@astouz2000k > Effectivement on ne peut pas tout avoir du premier coup ! Mais le databinding est une fonctionnalité importante et j'en prend note pour la prochaine maj.
J'essayerais aussi de trouver une façon de gérer la transparence, de supprimer les propriétés ne servant plus, et surtout de mieux gérer le redraw.
++
2 nov. 2009 à 12:51
2 nov. 2009 à 12:20
Fichier zip vide : 168ko !!
Jacques
2 nov. 2009 à 12:09
Manque juste la possibilité de lié l'etat avec une base de donnée (comme le radio_button d'origine)
nikel sinon...
2 nov. 2009 à 07:22
Moi j'ai juste renommé les propriétés avec un "_" devant pour les faire apparaitre en haut de liste, mais bon je préfére la méthode de claudetom.
Aprés mise à jour, il deviendra un trés bon Tuto sur les user controls.
@++ et bonne semaine à tous.
1 nov. 2009 à 21:02
'********************************************
'Cache les propriétés non Utilisés
_
Public Overrides Property BackColor() As Color
Get
Return Color.Transparent
End Get
Set(ByVal value As Color)
MyBase.BackColor = Color.Transparent
End Set
End Property
_
Public Overrides Property BackgroundImageLayout() As System.Windows.Forms.ImageLayout
Get
Return Windows.Forms.ImageLayout.None
End Get
Set(ByVal value As System.Windows.Forms.ImageLayout)
MyBase.BackgroundImageLayout = Windows.Forms.ImageLayout.None
End Set
End Property
_
Public Overrides Property BackgroundImage() As Image
Get
Return MyBase.BackgroundImage
End Get
Set(ByVal value As Image)
MyBase.BackgroundImage = value
End Set
End Property
_
Public Shadows Property BorderStyle() As BorderStyle
Get
Return Windows.Forms.BorderStyle.None
End Get
Set(ByVal value As BorderStyle)
MyBase.BorderStyle = Windows.Forms.BorderStyle.None
End Set
End Property
sinon j'ai aussi mis dans InitializeComponent
MyBase.SetStyle(Windows.Forms.ControlStyles.SupportsTransparentBackColor, True)
MyBase.BackColor = Color.Transparent
1 nov. 2009 à 20:09
Pour les props tu les a masqués comment à partir du designer ? A vrais dire je recherche un moyen de masquer les propriétés (autres que Private overrides), mais pour les masquer aussi bien dans la fenêtre de propriétés que dans le code behind (intellisense).
Encore merci, pour toutes ces félicitations (et pour le verre virtuel :O)).
1 nov. 2009 à 19:15
ont te paye tous un coup ;)
et avec plaisir
sinon concernant ton code j'ai juste masqué dans les property les propriétés qui ne servent pas comme backcolor etc..
sinon une question concernant le Pushbouton il marche avec le clique droit et gauche ?
1 nov. 2009 à 18:52
Mais merci quand même !
J'en ai profité un peu car aujourd hui on est dimanche, mais le développement est une passion alors le temps ne se compte pas.
1 nov. 2009 à 17:27
3h du mat ! t'es fou, repose toi et bonne fin de week end, je regarde le résultat de suite
Merci pour tout, kenavo
1 nov. 2009 à 03:21
Pour ce qui est du glossy sur le contrôle, j'ai testé mais c'est vraiment très laid, ca n'a pas un beau rendu, donc je ne l'ai pas gardé.
Voila @+
31 oct. 2009 à 18:53
Pour ce qui est du glossy sur tout le contrôle, c'est pas très complexe non plus, à voir...
@m_simohamed > Merci, beaucoup pour tous ces compliments, tu as fais du bon boulot aussi pour la version vb6, c'est pas aussi simple qu'en .Net alors je te retourne le chapeau !
@Adn56 > Merci aussi pour les compliments :) Pour ce qui est des états en plus, je vais voir, les possibilités sont vastes, je vais faire un pelle mêlle de toutes vos idées et essayer de sortir une version amélioré, avec toutes ces fonctionnalités (dans la mesure du possible et de mon temps libre), je vais aussi optimiser le code, car les redraw ne se font pas comme il le devraient, essayer de sortir une version plus stable.
Je suis content d'avoir pu partager cela, tien moi au courant de la mise à jour de ton soft.
Merci encore et @+
31 oct. 2009 à 18:05
Sur le backstyle, rajoute en plus de rect_border et round_border un NONE_mono et NONe_bi qui ne dessinerai que le cercle du BP, plus de déplacement, juste l'alumage du bp si clic. qui sera monostable si mono (actif que si clic) et bistable si bi (maintient de l'état, comme maintenant quoi)
Là tu tiens vraiment un truc de qualité PRO.
Faudrait dire à nix de faire une zone spéciale "super usercontrole" ^^ il y aura une trés bonne place.
M_simohamed peu être fier d'avoir permis cette sublime mise à jour de son control original.
Bonne prog, et à charge de rendre service à mon tour (si je peux :p)
31 oct. 2009 à 17:41
31 oct. 2009 à 17:36
mais je perso garde le clic actif sur tout le control, cela devient vite casse bonbon pour l'utilisateur d'être obligé de pointer le cercle. ou alors fait une option pour nous contanter tous les deux ^^
L'option de garder que le cercle pour un radio, voir un simple BP me parait fort utile. surtout si la taille globale peut être agrandi (style des BP Ø22 de l'industrie)
Encore bravo pour ta source, je vais la lire de suite (tu m'a donné envie ^^)
@++
31 oct. 2009 à 17:31
31 oct. 2009 à 16:37
en ce moment c'est une la grande mode ;)
31 oct. 2009 à 16:35
met l'accrochage anchor sur Top, Left, Right puis ensuite resize ta form tu verras ;)
Sinon pour l'hilight juste limiter à la zone du bouton cela serait parfait !
31 oct. 2009 à 16:19
31 oct. 2009 à 16:17
@claudetom >
1\Pas trop complexe à faire je pense (au niveau du design).
2\Clignoté... possible aussi, mais ce pourrait être gourmand en ressources si plusieurs composant se trouvent sur le même formulaire. Je pensait plutôt à un hilight progressif en fondu lors passage de la souris et surligner le texte (option désactivable).
3\ Pour le bouton c'est justement ces couleurs (gris foncé et claire) qui donnent un effet 3D, les modifier ne servirait pas à grand chose. Pour l'autocheck, ok, je ferais la maj.
4\Effectivement, il devrait l'être mais je n'ai pas eu le temps d'optimiser le code (à vrais dire y' a près de 700 lignes juste pour le dessin, c'est le genre de contrôle à faire en WPF et non en winform). Pareil, dès que j'ai un moment j'y regarde.
5\ C'est à dire ?
pour ce qui est de tes améliorations, le pointeur pourquoi pas, de mon coté je vais voir pour l'hilight.
Pour le click gauche, c'est un oublis ^^, mais je pensait aussi limiter le click à la zone du bouton car actuellement c'est toute la zone du contrôle qui déclenche un changement d'état du contrôle.
Pour ce qui est du de la désactivation c'était volontaire, mais c'est vrais qu'il est toujours intéressant de savoir dans quel état se trouve le contrôle lors ce qu'il est désactivé.
En tous cas grand merci pour toutes ces remarques !
31 oct. 2009 à 15:29
modif :
Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
'
If e.Button = Windows.Forms.MouseButtons.Right Then Exit Sub
...
Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
Me.Cursor = Cursors.Default
MyBase.OnMouseLeave(e)
End Sub
Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs) If Not Me.Cursor Cursors.Hand Then Me.Cursor Cursors.Hand
MyBase.OnMouseMove(e)
End Sub
Ci-dessous, car sinon aucun moyen de savoir dans quel etat est le bouton
Par contre reste désactivé pour l'utilisateur
Dans Protected Overridable Sub Redraw()
remplacer les lignes
'If Enabled Then <-- Commentaire
DrawButton(G, BGE, _ButtonColor, Pos, _Checked) 'Enabled)<-- changé par _Checked
'End If <-- Commentaire
'If Enabled Then <-- Commentaire
...
DrawButton(G, BGE, _ButtonColor, Pos, False)
'End If <-- Commentaire
31 oct. 2009 à 14:42
31 oct. 2009 à 14:35
Tu veux des idées et bien en voici :
1) sur cette base en faire un compo style Radiobutton (une option supplémentaire à mettre)
lors du désigne en fonction de l'option du dessine soit le style RadioButton soit le style checkbox à bascule
2) Possibilité par option supplémentaire, de faire clignoter le voyant en mode ON
3) changer la couleur du bouton et fond de celui-ci en une autre couleur style gradient comme le compo précédent qui était une image, au lieu du simple gris
Pour l'option Radiobutton, il faut gérer l'option autochecked (comme le vrai compo) si plusieurs dans un groupbox ou autre conteneur.
4) voir pour que le fond du composant (l'usercontrol soit transparent) ce qui est pas le cas actuellement car si tu superpose 2 composants tu remarque autour le fond de celui-ci
5) en mode accrochage left et right etc.. ton contrôle se redessine mal
Voila pour les améliorations
Bonne continuation.
31 oct. 2009 à 11:51
Bien mieux que le précédent.
31 oct. 2009 à 08:19