Диалог для выбора цвета расположен на вкладке Dialogs:
Он является классом ColorDialog.
Рассмотрим, как с ним можно работать. Перенесите его на форму. После этого под формой, в области для невизуальных компонентов, появится экземпляр класса ColorDialog - что-то вроде colorDialog1. Кроме компонента ColorDialog разместите на форме обыкновенную кнопку, в обработчике которой поместите следующий код:
private void button1_Click(object sender, EventArgs e)
{
// Востанавливаем пользовательские цвета в диалоге.
colorDialog1.CustomColors = customColors;
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
// Записываем выбранные пользователем цвета.
customColors = colorDialog1.CustomColors;
// Получаем выбранный пользователем цвет.
color = colorDialog1.Color;
...
}
}
Собственно говоря, самая главная строчка тут - это чтение свойства Color для нашего диалога. После чего переменную color с выбранным пользователем цветом можно где-то использовать - например, вызвать Invalidate() для использования выбранного цвета в рисовании.
Разумеется, для указанного фрагмента переменные color и customColors должны быть объявлены на уровне класса:
// Переменная для хранения выбранного цвета.
Color color;
// Массив для хранения пользовательских цветов.
int[] customColors = new int[] { 0xFF0000, 0xFFFF00, 0xFF00FF };
Обратите внимание, что указанный фрагмент позволяет работать и с пользовательскими цветами - запоминать и восстанавливать их: