Je voudrais avoir une trackbar sur mon formulaire qui correspondra au HUE de la couleur du backgruond, donné une gamme de 1 à 360, et un autre trackbar qui correspondra à la saturation de la couleur de la backgruond, dans une plage de 1 à 50.implémenter une trackbar qui va changer la couleur de fond du formulaire
1
A
Répondre
2
en utilisant la procédure HSVtoRGB
trouvé here, vous pouvez brancher vos deux TrackBar
contrôles au même gestionnaire d'événements utilisant ce code:
Private Sub tbHUE_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbHUE.Scroll, tbSaturation.Scroll
Dim r, g, b As Integer
HSVtoRGB(r, g, b, tbHUE.Value, tbSaturation.Value/50, 255)
BackColor = Color.FromArgb(r, g, b)
End Sub
Edit: Voici la procédure corrigée puisque celle du lien esn't vraiment suivre les meilleures pratiques:
Private Sub HSVtoRGB(ByRef Red As Integer, ByRef Green As Integer, ByRef Blue As Integer, ByVal Hue As Double, ByVal Sat As Double, ByVal Value As Integer)
Dim i As Integer
Dim f As Double, p As Double, q As Double, t As Double
If Sat = 0 Then
Red = Value
Green = Value
Blue = Value
Exit Sub
End If
i = CInt(Hue) \ 60
Hue = Hue/60
f = Hue - i
p = Value * (1 - Sat)
q = Value * (1 - Sat * f)
t = Value * (1 - Sat * (1 - f))
Select Case i
Case 0
Red = Value
Green = CInt(t)
Blue = CInt(p)
Case 1
Red = CInt(q)
Green = Value
Blue = CInt(p)
Case 2
Red = CInt(p)
Green = Value
Blue = CInt(t)
Case 3
Red = CInt(p)
Green = CInt(q)
Blue = Value
Case 4
Red = CInt(t)
Green = CInt(p)
Blue = Value
Case 5
Red = Value
Green = CInt(p)
Blue = CInt(q)
End Select
End Sub
1
Julien a une bonne réponse, mais cela viendra dans les recherches, donc beaucoup de liens aide toujours :-)
Bob Powell a aussi quelques HSL code dans son RGB and HSL Colour Space Conversions. Et, (celui-ci est en C#, donc probablement ne va pas aider beaucoup), Chris Jackson a un HSB code qui semble raisonnable. Le port vb.net qui était lié est, euh, notsogood, il a des problèmes avec l'option strict activé. Pas insurmontable, mais pas copypaste prêt non plus
Questions connexes
- 1. changer la teinte/la saturation de l'écran sans utiliser la couleur de fond du formulaire
- 2. Comment changer la couleur de la bordure du formulaire C#?
- 3. Comment changer la couleur de fond d'un NSBrowser de cacao?
- 4. Changer la couleur de fond sur la radio sélectionnez
- 5. Changer la couleur de fond de nuage de tags
- 6. Changer la couleur de fond d'un UILabel dans un UITableViewCell
- 7. ASP.NET: Comment changer la couleur de fond d'un contrôle qui a échoué à la validation?
- 8. couleur de fond ListItemRenderer
- 9. Changer la couleur de la date
- 10. Changer la couleur du caret dans silverlight 2
- 11. dojox.Grid ligne couleur de fond
- 12. Changer la couleur d'arrière-plan plein écran
- 13. Changer la couleur de JFileChooser
- 14. comment changer la couleur de fond d'en-tête de colonne pour le contrôle AdvancedDataGrid flex
- 15. Comment obtenir la couleur de fond par défaut de JButton?
- 16. WPF C# - Changer la brosse de fond
- 17. KDE4.2 changer de fond d'écran
- 18. Changer la couleur de fond de Datagrid en-tête dans Silverlight
- 19. Changer la couleur du curseur de texte (caret) dans Cocoa?
- 20. Comment changer la couleur de teinte du NSLevelIndicator de Cocoa?
- 21. paramètres colordialog.customcolor pour égaler la couleur d'arrière-plan du formulaire
- 22. Obtention de la couleur de la légende du formulaire actif
- 23. Comment changer la couleur du texte de l'étiquette?
- 24. Changer la couleur de police du texte en format PDF
- 25. Renvoie la couleur de fond de la cellule sélectionnée
- 26. Changer la couleur d'un pixel
- 27. Changer la couleur d'une partie du texte en utilisant javascript?
- 28. Animation sans fin de couleur de fond dans jQuery, comment?
- 29. Comment placer la couleur de fond d'IFRAME à la couleur BG de son document parent?
- 30. L'IE Fieldset couleur de fond Purger Bug
julien merci beaucoup. J'ai des problèmes et je reçois des erreurs parce que le code sur la page Web n'est pas .NET. pour ce qui suit: Private Und UnRGB (ByVal couleur comme OLE_COLOR, ByRef r, ByRef g, ByRef b) ------- il ne sait pas ce que OLE_COLOR est et pour les r, g et b, il dit Erreur \t \t Tous les paramètres doivent être tapés explicitement si l'un d'eux est explicitement tapé –
maintenant je reçois Erreur L'opérateur 'And' n'est pas défini pour les types 'System.Drawing.Color' et 'Integer'. –
Ha oui, la procédure dans le lien suppose que vous avez 'Option Explicit' off, je vais inclure le code pour le rendre plus facile –