cs_lienrag
Messages postés22Date d'inscriptionmercredi 4 décembre 2002StatutMembreDernière intervention 3 février 2005
-
14 avril 2003 à 12:55
cariok
Messages postés2Date d'inscriptionvendredi 11 juin 2004StatutMembreDernière intervention27 janvier 2006
-
27 janv. 2006 à 15:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cariok
Messages postés2Date d'inscriptionvendredi 11 juin 2004StatutMembreDernière intervention27 janvier 2006 27 janv. 2006 à 15:34
Merci pour ta réactivité.
Je ne suis pas sûr d'avoir bien saisi.
Mon contexte est le suivant : mon client possède Visual Studio 2005, avec le Framework 2.0.
Malheureusement ils sont toujours sous l'OS W.2000
Si j'ai bien compris, ils garderont le style "rétro", avec une légère évolution sur quelques contrôles ?
jmenfous
Messages postés117Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 juillet 20091 27 janv. 2006 à 14:56
On peut repondre par ni oui ni non, mais ca ne risque pas de te plaire :)
Le fichier manifest (plus trop a la mode il faut l'avouer) et les methodes d'autorisation des style visuel se base sur ton OS. Donc pour 2000 tu aurras au mieu une legere modification de tes control un peu dans le style de ce qui existait dans office 2000. Avec des textbox un peu plus sympas. Mais je ne crois pas que les autres controls soient affectes.
Si quelqun a la liste, pourquoi pas, mais avec copain Vista qui pointe...
Et puis Dot Net 2, enfin le reve quoi ;)
cariok
Messages postés2Date d'inscriptionvendredi 11 juin 2004StatutMembreDernière intervention27 janvier 2006 27 janv. 2006 à 12:13
Petite question : cette source est-elle valable avec l'OS Windows 2000 ?
Merci d'avance
TheEwook
Messages postés155Date d'inscriptionsamedi 3 juillet 2004StatutMembreDernière intervention30 mai 2005 19 août 2004 à 19:24
re :
Le code est cool, j'ai fait des modifs pour que le style xp s'applique sur les autres controls (checkbox, radiobutton)
C'est sur qu'on pourrait en faire une source. Ben si tu veux tu peux la poster car tu a pratiquement tout fait. Moi je n'ai eu que l'idée.
Voilà le code au finish :
Dans un module :
Public Sub Appliquer_Style_XP(ByVal vCtrl As Control)
Dim C As Control
'recherche de tout les controls
For Each C In vCtrl.Controls
'verification du type
Select Case C.GetType.ToString
Case "System.Windows.Forms.Button"
Dim CBtn As System.Windows.Forms.Button
CBtn = C
CBtn.FlatStyle = FlatStyle.System
CBtn = Nothing 'leberation memoire
Case "System.Windows.Forms.GroupBox"
Appliquer_Style_XP(C)
Dim cGBox As System.Windows.Forms.GroupBox
cGBox = C
cGBox.FlatStyle = FlatStyle.System
cGBox = Nothing 'memoire quand tu nous tiend
Case "System.Windows.Forms.CheckBox"
Appliquer_Style_XP(C)
Dim chckBox As System.Windows.Forms.CheckBox
chckBox = C
chckBox.FlatStyle = FlatStyle.System
chckBox = Nothing 'memoire quand tu nous tiend
Case "System.Windows.Forms.RadioButton"
Appliquer_Style_XP(C)
Dim cRdtnBox As System.Windows.Forms.RadioButton
cRdtnBox = C
cRdtnBox.FlatStyle = FlatStyle.System
cRdtnBox = Nothing 'memoire quand tu nous tiend
Case Else
Appliquer_Style_XP(C) ' et c'est reparti pour chercher les autres controls qui sont contenus dans C
End Select
Next
'Liberation memeoire
C = Nothing
End Sub
Et dans la form_load
Appliquer_Style_XP(Me)
Voilà
jmenfous
Messages postés117Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 juillet 20091 18 août 2004 à 22:55
Pardon ce n'est pas dans un Main mais dans le Load qu'il faut ajouter Appliquer_Style_XP(Me)
....
jmenfous
Messages postés117Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 juillet 20091 18 août 2004 à 22:49
ohhhhh Toi tu es difficil a satisfaire.....
....mais j' la solution (code pondu en 5 minutes pas plus)
Dans ton Main tu ajoute: Appliquer_Style_XP(Me)
Et dans un modul :
Public Sub Appliquer_Style_XP(ByVal vCtrl As Control)
Dim C As Control
'recherche de tout les controls
For Each C In vCtrl.Controls
'verification du type
Select Case C.GetType.ToString
Case "System.Windows.Forms.Button"
Dim CBtn As System.Windows.Forms.Button
CBtn = C
CBtn.FlatStyle = FlatStyle.System
CBtn = Nothing 'leberation memoire
Case "System.Windows.Forms.GroupBox"
Appliquer_Style_XP(C)
Dim cGBox As System.Windows.Forms.GroupBox
cGBox = C
cGBox.FlatStyle = FlatStyle.System
cGBox = Nothing 'memoire quand tu nous tiend
Case Else
Appliquer_Style_XP(C)' et c'est reparti pour chercher les autres controls qui sont contenus dans C
End Select
Next
'Liberation memeoire
C = Nothing
End Sub
Simple....
Tu peux toujours ajouter d'autres "Case", mais je ne sais pas quels autres controls peuvent etres concernes.
Si tu as d'autres idees on pourait en faire un ZIP.
TheEwook
Messages postés155Date d'inscriptionsamedi 3 juillet 2004StatutMembreDernière intervention30 mai 2005 18 août 2004 à 18:24
OK mais ton programme ne modifie pas les propriétés des buttons qui se trouvent par exemple dans un groupbox.
Donc les bouttons se trouvant dans des groupbox ne prennent pas les proprietés flastyle = system
jmenfous
Messages postés117Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 juillet 20091 18 août 2004 à 00:17
tu peux aussi faire un select case pour modifier les autres controls en fonction de leur type
jmenfous
Messages postés117Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 juillet 20091 18 août 2004 à 00:14
j'ai ce qui te faut (dans ton Load):
Dim B As Control
Dim BTN As Button
'recherche de tout les controls
For Each B In Me.Controls
'verification du type
If B.GetType.ToString = "System.Windows.Forms.Button" Then
Debug.WriteLine(B.GetType())
BTN = B
BTN.FlatStyle = FlatStyle.System
End If
Next
'Liberation memeoire
B = Nothing
BTN = Nothing
Il doit y avoir encore plus simple... je vais chercher
@+
Mais ce que je voudrais faire c'est justement une fonction aui au démarrage de l'appli qui mette la proprietes : FlatStyle : sur tous les boutons, texbox, etc.....
(Pour c apas de pb : ma fonction marche)
Et IMPORTANT (ce que je n'arrive pas à faire) : c'est que les boutons etc.... qui se trouve dans un group box prennent aussi la propriete : FlatStyle :
Si quelqu'un a une idée, qu'il me fasse signe.
J'espere que vous avez compris ce que je veux faire
jmenfous
Messages postés117Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 juillet 20091 17 août 2004 à 22:48
J'ai déjà utilise l'équivalant sous vb6, mais?..
En Dot Net, on n'a pas besoin de réinventer la roue. En effet il existe déjà un moyen d'utiliser le style XP. Pour cela il faut mettre la ligne suivante dans la méthode New de ton premier formulaire ou en première ligne de ton Main
Application.EnableVisualStyles
J'ai teste, c'est supper simple? seul petit truc a faire en plus, mettre la propriété FlatStyle des boutons (et quelques autres composants) sur System.
Apres, plus rien à faire.
ManDeq59
Messages postés55Date d'inscriptiondimanche 12 mai 2002StatutMembreDernière intervention 6 juillet 2004 30 mai 2004 à 13:04
OK, merci ca marche
Il faudrait faire un truc pour que tous les objets de la form prennent automatiquement cette proprieté.
J'ai vu qu'il y a déjà un truc comme ca dans cette source, mais elle ne doit pas marcher qd un objet fait parti d'un autre objet.
Si quelqu'un a une suggestion ????
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 30 mai 2004 à 01:38
ManDeq59 --> Il faut mettre la propriété "FlatStyle" du contrôle à "System".
ManDeq59
Messages postés55Date d'inscriptiondimanche 12 mai 2002StatutMembreDernière intervention 6 juillet 2004 29 mai 2004 à 17:04
Une petite remarque :
j'ai un bouton ç l'intérieur d'un groupbox ==> Le style xp ne s'applique pas sur le bouton.
Le fait que le bouton fasse partie du groupbox ca merde !!!!!
Y a un moyen de le faire quand même ???
Sinon, y a pas de pb, c'est nikel !! félécitation !!!!
Dromax
Messages postés40Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention23 septembre 2005 7 nov. 2003 à 18:05
Encore Merci....
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 7 nov. 2003 à 17:16
C'est bien mais, tu dis que c'est util pour ne pas revoir tout les controls un par un, mais si seulement l'on a qu'une form !
J'ai un projet avec une dizaine de form, et ton truc ne s'applique qu'a la premiere qui est pour moi une mdi, donc inutile...
Donc j'ai du revoir le flatstyle de tt les bouton, groupbox et combobox, dommage que les numericupdown n'ait pas un style xp, car sous windows il en existe bien avec style xp ...
Enfin c'est bien pour la création du manifest :)
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 13 sept. 2003 à 18:47
Si, XP c'est bien 5.1 :
Major.Version = 5
Minor.Version = 1
Crazyht à dit que Major.Version ne peut pas être supérieur à 5, ce qui est vrai, sinon ce serait Major.Version = 6
lumesh
Messages postés564Date d'inscriptionjeudi 21 février 2002StatutMembreDernière intervention 7 novembre 2008 13 sept. 2003 à 18:22
Message de Crazyht déposé le 18/04/2003 19:21:15
--------------------------------------------------------------------------------
spy166 >> Major version pour le moment ne peut etre superieur a 5 :)
!!!!!!! et XP c koi ? c pas 5.1 par hasard ?!
tnardoux
Messages postés1Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention16 juin 2003 16 juin 2003 à 11:37
C'est vraiment niquel !!! Merci de ce source et de la petite modif de spy166....
cs_Crazyht
Messages postés1522Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention21 août 20108 19 avril 2003 à 00:16
lol oui cette fois ca doit etre bon :)
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 18 avril 2003 à 23:23
A euh oui...
C'est vrai. Dans ce cas, tu met "If Environment.OSVersion.Version.Major = 5 And Environment.OSVersion.Version.Minor > 0 Then"
Cette fois, je crois que c'est bon.
cs_Crazyht
Messages postés1522Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention21 août 20108 18 avril 2003 à 19:21
spy166 >> Major version pour le moment ne peut etre superieur a 5 :)
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 18 avril 2003 à 18:31
Au lieu de mettre
"If Environment.OSVersion.Version.Major = 5 Then"
met plutôt
"If Environment.OSVersion.Version.Major > 5 Then"
Comme ça, pas de problèmes...
cs_xtof
Messages postés48Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention13 décembre 2007 17 avril 2003 à 08:31
Tu as raison, bien que j'avais précisé dans mon code que je ne savais pas si cela était correct.
Après recherches sur MSDN, j'ai trouvé que l'on pouvait utiliser la fonction GetVersionEx.
Et donc déterminer la version de Windows à coup sûr :
5.0 = Windows 2000
5.1 = Windows XP
5.2 = Windows Server 2003
cs_Crazyht
Messages postés1522Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention21 août 20108 16 avril 2003 à 16:43
A titre indication ton test Version.Major = 5 n'est pas correct puisque Windows 2000 renvoi 5 aussi (5.0) et XP (5.1) :)
gwiwi
Messages postés127Date d'inscriptionlundi 8 juillet 2002StatutMembreDernière intervention 4 janvier 20071 14 avril 2003 à 13:56
Super bien.
Simple (encore faut il le savoir !!!!) mais tres efficace ....
BRAVO
cs_xtof
Messages postés48Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention13 décembre 2007 14 avril 2003 à 13:11
Argh, ben je l'ai écrit tout seul... ;o)
Je vais regarder pour VB6 mais je crois qu'il y a pas mal de samples ici qui prennent déjà en charge le Style XP.
++,
XtOf
cs_lienrag
Messages postés22Date d'inscriptionmercredi 4 décembre 2002StatutMembreDernière intervention 3 février 2005 14 avril 2003 à 12:55
PAs mal du tout, tu a trouve ca ou ?
J'ai vu un truc comme ca sous delphi 7 .
Et sous vb6 possible ou pas ?
27 janv. 2006 à 15:34
Je ne suis pas sûr d'avoir bien saisi.
Mon contexte est le suivant : mon client possède Visual Studio 2005, avec le Framework 2.0.
Malheureusement ils sont toujours sous l'OS W.2000
Si j'ai bien compris, ils garderont le style "rétro", avec une légère évolution sur quelques contrôles ?
27 janv. 2006 à 14:56
Le fichier manifest (plus trop a la mode il faut l'avouer) et les methodes d'autorisation des style visuel se base sur ton OS. Donc pour 2000 tu aurras au mieu une legere modification de tes control un peu dans le style de ce qui existait dans office 2000. Avec des textbox un peu plus sympas. Mais je ne crois pas que les autres controls soient affectes.
Si quelqun a la liste, pourquoi pas, mais avec copain Vista qui pointe...
Et puis Dot Net 2, enfin le reve quoi ;)
27 janv. 2006 à 12:13
Merci d'avance
19 août 2004 à 19:24
Le code est cool, j'ai fait des modifs pour que le style xp s'applique sur les autres controls (checkbox, radiobutton)
C'est sur qu'on pourrait en faire une source. Ben si tu veux tu peux la poster car tu a pratiquement tout fait. Moi je n'ai eu que l'idée.
Voilà le code au finish :
Dans un module :
Public Sub Appliquer_Style_XP(ByVal vCtrl As Control)
Dim C As Control
'recherche de tout les controls
For Each C In vCtrl.Controls
'verification du type
Select Case C.GetType.ToString
Case "System.Windows.Forms.Button"
Dim CBtn As System.Windows.Forms.Button
CBtn = C
CBtn.FlatStyle = FlatStyle.System
CBtn = Nothing 'leberation memoire
Case "System.Windows.Forms.GroupBox"
Appliquer_Style_XP(C)
Dim cGBox As System.Windows.Forms.GroupBox
cGBox = C
cGBox.FlatStyle = FlatStyle.System
cGBox = Nothing 'memoire quand tu nous tiend
Case "System.Windows.Forms.CheckBox"
Appliquer_Style_XP(C)
Dim chckBox As System.Windows.Forms.CheckBox
chckBox = C
chckBox.FlatStyle = FlatStyle.System
chckBox = Nothing 'memoire quand tu nous tiend
Case "System.Windows.Forms.RadioButton"
Appliquer_Style_XP(C)
Dim cRdtnBox As System.Windows.Forms.RadioButton
cRdtnBox = C
cRdtnBox.FlatStyle = FlatStyle.System
cRdtnBox = Nothing 'memoire quand tu nous tiend
Case Else
Appliquer_Style_XP(C) ' et c'est reparti pour chercher les autres controls qui sont contenus dans C
End Select
Next
'Liberation memeoire
C = Nothing
End Sub
Et dans la form_load
Appliquer_Style_XP(Me)
Voilà
18 août 2004 à 22:55
....
18 août 2004 à 22:49
....mais j' la solution (code pondu en 5 minutes pas plus)
Dans ton Main tu ajoute: Appliquer_Style_XP(Me)
Et dans un modul :
Public Sub Appliquer_Style_XP(ByVal vCtrl As Control)
Dim C As Control
'recherche de tout les controls
For Each C In vCtrl.Controls
'verification du type
Select Case C.GetType.ToString
Case "System.Windows.Forms.Button"
Dim CBtn As System.Windows.Forms.Button
CBtn = C
CBtn.FlatStyle = FlatStyle.System
CBtn = Nothing 'leberation memoire
Case "System.Windows.Forms.GroupBox"
Appliquer_Style_XP(C)
Dim cGBox As System.Windows.Forms.GroupBox
cGBox = C
cGBox.FlatStyle = FlatStyle.System
cGBox = Nothing 'memoire quand tu nous tiend
Case Else
Appliquer_Style_XP(C)' et c'est reparti pour chercher les autres controls qui sont contenus dans C
End Select
Next
'Liberation memeoire
C = Nothing
End Sub
Simple....
Tu peux toujours ajouter d'autres "Case", mais je ne sais pas quels autres controls peuvent etres concernes.
Si tu as d'autres idees on pourait en faire un ZIP.
18 août 2004 à 18:24
Donc les bouttons se trouvant dans des groupbox ne prennent pas les proprietés flastyle = system
18 août 2004 à 00:17
18 août 2004 à 00:14
Dim B As Control
Dim BTN As Button
'recherche de tout les controls
For Each B In Me.Controls
'verification du type
If B.GetType.ToString = "System.Windows.Forms.Button" Then
Debug.WriteLine(B.GetType())
BTN = B
BTN.FlatStyle = FlatStyle.System
End If
Next
'Liberation memeoire
B = Nothing
BTN = Nothing
Il doit y avoir encore plus simple... je vais chercher
@+
17 août 2004 à 23:28
Mais ce que je voudrais faire c'est justement une fonction aui au démarrage de l'appli qui mette la proprietes : FlatStyle : sur tous les boutons, texbox, etc.....
(Pour c apas de pb : ma fonction marche)
Et IMPORTANT (ce que je n'arrive pas à faire) : c'est que les boutons etc.... qui se trouve dans un group box prennent aussi la propriete : FlatStyle :
Si quelqu'un a une idée, qu'il me fasse signe.
J'espere que vous avez compris ce que je veux faire
17 août 2004 à 22:48
En Dot Net, on n'a pas besoin de réinventer la roue. En effet il existe déjà un moyen d'utiliser le style XP. Pour cela il faut mettre la ligne suivante dans la méthode New de ton premier formulaire ou en première ligne de ton Main
Application.EnableVisualStyles
J'ai teste, c'est supper simple? seul petit truc a faire en plus, mettre la propriété FlatStyle des boutons (et quelques autres composants) sur System.
Apres, plus rien à faire.
30 mai 2004 à 13:04
Il faudrait faire un truc pour que tous les objets de la form prennent automatiquement cette proprieté.
J'ai vu qu'il y a déjà un truc comme ca dans cette source, mais elle ne doit pas marcher qd un objet fait parti d'un autre objet.
Si quelqu'un a une suggestion ????
30 mai 2004 à 01:38
29 mai 2004 à 17:04
j'ai un bouton ç l'intérieur d'un groupbox ==> Le style xp ne s'applique pas sur le bouton.
Le fait que le bouton fasse partie du groupbox ca merde !!!!!
Y a un moyen de le faire quand même ???
Sinon, y a pas de pb, c'est nikel !! félécitation !!!!
7 nov. 2003 à 18:05
7 nov. 2003 à 17:16
http://www.vbfrance.com/code.aspx?ID=17542
Je l'explique dans "Description de la source"
7 nov. 2003 à 12:58
3 nov. 2003 à 20:43
Merci Spy
3 nov. 2003 à 17:39
Ou je trouve des styles ?? et comment je les appliquent ??
2 nov. 2003 à 23:29
Le .exe.manifest sert à ce que ton application prenne en charge le style XP (les beux bouttos et tout et tout)
2 nov. 2003 à 22:22
14 sept. 2003 à 12:22
Tu l'as ? :)
14 sept. 2003 à 00:53
C'est chiant d'avoir le .exe.manifest à coté de son prog !
13 sept. 2003 à 18:54
J'ai un projet avec une dizaine de form, et ton truc ne s'applique qu'a la premiere qui est pour moi une mdi, donc inutile...
Donc j'ai du revoir le flatstyle de tt les bouton, groupbox et combobox, dommage que les numericupdown n'ait pas un style xp, car sous windows il en existe bien avec style xp ...
Enfin c'est bien pour la création du manifest :)
13 sept. 2003 à 18:47
Major.Version = 5
Minor.Version = 1
Crazyht à dit que Major.Version ne peut pas être supérieur à 5, ce qui est vrai, sinon ce serait Major.Version = 6
13 sept. 2003 à 18:22
--------------------------------------------------------------------------------
spy166 >> Major version pour le moment ne peut etre superieur a 5 :)
!!!!!!! et XP c koi ? c pas 5.1 par hasard ?!
16 juin 2003 à 11:37
19 avril 2003 à 00:16
18 avril 2003 à 23:23
C'est vrai. Dans ce cas, tu met "If Environment.OSVersion.Version.Major = 5 And Environment.OSVersion.Version.Minor > 0 Then"
Cette fois, je crois que c'est bon.
18 avril 2003 à 19:21
18 avril 2003 à 18:31
"If Environment.OSVersion.Version.Major = 5 Then"
met plutôt
"If Environment.OSVersion.Version.Major > 5 Then"
Comme ça, pas de problèmes...
17 avril 2003 à 08:31
Après recherches sur MSDN, j'ai trouvé que l'on pouvait utiliser la fonction GetVersionEx.
Et donc déterminer la version de Windows à coup sûr :
5.0 = Windows 2000
5.1 = Windows XP
5.2 = Windows Server 2003
16 avril 2003 à 16:43
14 avril 2003 à 13:56
Simple (encore faut il le savoir !!!!) mais tres efficace ....
BRAVO
14 avril 2003 à 13:11
Je vais regarder pour VB6 mais je crois qu'il y a pas mal de samples ici qui prennent déjà en charge le Style XP.
++,
XtOf
14 avril 2003 à 12:55
J'ai vu un truc comme ca sous delphi 7 .
Et sous vb6 possible ou pas ?