est-il possible en winforms, vb.net, de définir les couleurs personnalisées spécifiques qui apparaîtront dans les boîtes de couleurs personnalisées dans colordialog?définir des couleurs personnalisées spécifiques qui apparaîtront dans le colordialog?
Répondre
En bref, oui. MSDN le couvre here. Le problème est que cela ne se fait pas via Color
- vous devez gérer la valeur en BGR - chaque entier est composé des couleurs 00BBGGRR, donc vous avez décalé le bleu de 16, le vert de 8 et le rouge " comme si".
Mon VB suce, mais en C#, pour ajouter pourpre:
using (ColorDialog dlg = new ColorDialog())
{
Color purple = Color.Purple;
int i = (purple.B << 16) | (purple.G << 8) | purple.R;
dlg.CustomColors = new[] { i };
dlg.ShowDialog();
}
réflecteur
me assure que ce qui est similaire à:
Using dlg As ColorDialog = New ColorDialog
Dim purple As Color = Color.Purple
Dim i As Integer = (((purple.B << &H10) Or (purple.G << 8)) Or purple.R)
dlg.CustomColors = New Integer() { i }
dlg.ShowDialog
End Using
L'exemple existant contient une erreur. Purple.B est un octet pas un nombre entier, donc le décalage de 8 ou 16 bits ne fera rien à la valeur. Chaque octet doit d'abord être converti en entier avant de le déplacer. Quelque chose comme ça (VB.NET):
Dim CurrentColor As Color = Color.Purple
Using dlg As ColorDialog = New ColorDialog
Dim colourBlue As Integer = CurrentColor.B
Dim colourGreen As Integer = CurrentColor.G
Dim colourRed As Integer = CurrentColor.R
Dim newCustomColour as Integer = colourBlue << 16 Or colourGreen << 8 Or colourRed
dlg.CustomColors = New Integer() { newCustomColour }
dlg.ShowDialog
End Using
Si vous voulez avoir plus de 1 couleur personnalisée, vous pouvez le faire:
'Define custom colors
Dim cMyCustomColors(1) As Color
cMyCustomColors(0) = Color.FromArgb(0, 255, 255) 'aqua
cMyCustomColors(1) = Color.FromArgb(230, 104, 220) 'bright pink
'Convert colors to integers
Dim colorBlue As Integer
Dim colorGreen As Integer
Dim colorRed As Integer
Dim iMyCustomColor As Integer
Dim iMyCustomColors(cMyCustomColors.Length - 1) As Integer
For index = 0 To cMyCustomColors.Length - 1
'cast to integer
colorBlue = cMyCustomColors(index).B
colorGreen = cMyCustomColors(index).G
colorRed = cMyCustomColors(index).R
'shift the bits
iMyCustomColor = colorBlue << 16 Or colorGreen << 8 Or colorRed
iMyCustomColors(index) = iMyCustomColor
Next
ColorDialog1.CustomColors = iMyCustomColors
ColorDialog1.ShowDialog()
SIMPLIFIÉE (basé sur Gabby)
Si vous connaissez l'ARGB de vos couleurs personnalisées cibles, puis utilisez:
' Define custom colors
ColorDialog1.CustomColors = New Integer() {(255 << 16 Or 255 << 8 Or 0), _
(220 << 16 Or 104 << 8 Or 230), _
(255 << 16 Or 214 << 8 Or 177)}
ColorDialog1.ShowDialog()
'where colors are (arbg) 1: 0,255,255 [aqua]
' 2: 230,104,220 [bright pink]
' 3: 177,214,255 [whatever]
- 1. Détection des changements de couleur effectués par l'utilisateur dans colordialog
- 2. Comment obtenir les valeurs des couleurs de base utilisées dans ColorDialog?
- 3. jqGrid avec des couleurs de cellule personnalisées
- 4. Matplotlib Legend for Scatter avec des couleurs personnalisées
- 5. Pousser une liste de couleurs dans colordialog.customcolors
- 6. colordialog taille
- 7. Comment changer le titre de ColorDialog?
- 8. Réglage des couleurs dans SWT
- 9. Personnalisation des couleurs d'un UISegmentedControl
- 10. Enregistrer les nuances sur un ColorDialog dans une application Windows C#
- 11. C# définir un texte en 2 couleurs
- 12. Dessiner des couleurs dans une zone d'image?
- 13. Affichage des couleurs unies
- 14. Saisie d'éléments d'une liste python qui ont des index spécifiques
- 15. IIS7: Définir le futur lointain expire l'en-tête sur des fichiers spécifiques
- 16. Comment redimensionner le contenu UIWebView à des dimensions spécifiques?
- 17. Configuration des couleurs d'Eclipse
- 18. Transition des couleurs UINavigationBar?
- 19. Liaison des fonctions personnalisées aux événements DOM dans le prototype?
- 20. Générer des couleurs uniques
- 21. Désactiver des clés spécifiques dans IE 6
- 22. Comment effectuer des tâches spécifiques dans IIS
- 23. Comment créer des pages personnalisées dans dasBlog?
- 24. rapport d'erreur sur des dossiers spécifiques
- 25. expression régulière qui correspond à une chaîne qui comprend uniquement des lettres spécifiques
- 26. Stockage des classes personnalisées dans Objective-C
- 27. Modification des couleurs de menu Win32
- 28. Assainir SQL dans des conditions personnalisées
- 29. Schéma de couleurs dans vim
- 30. Copier des liens sortants spécifiques
+1 pour la manipulation au niveau du bit. Je souhaite vraiment que MS documente mieux ce genre de choses. –