Короче да. MSDN покрывает это здесь . Проблема в том, что это не выполняется через Color
- вам нужно обрабатывать значение как наборы BGR - то есть каждое целое число состоит из цветов как 00BBGGRR, поэтому вы смещаете влево синий на 16, зеленый на 8 и используете красный "как есть".
Мой VB отстой, но в C # добавить фиолетовый:
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();
}
Отражатель уверяет меня, что это похоже на:
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