Как установить следующий доступный пользовательский цвет в ColorDialog?
Я в настоящее время кодирую в VB.net.
Пользователь помещает курсор в ячейку таблицы и нажимает "Таблица> Цвет фона", чтобы редактировать текущий цвет фона.
В настоящее время я смог определить текущий цвет (например, светло-синий) и установить этот цвет в ColorDialog (образцы цветов верны, а значения RGB верны).
Что я хотел бы сделать, это дать пользователю возможность нажать "Добавить в пользовательские цвета", чтобы сохранить цвет. Проблема в том, что он устанавливает первый квадрат в области пользовательских цветов (который уже заполнен другим пользовательским цветом) вместо того, чтобы найти следующий белый квадрат и вместо этого установить его там.
Это возможно?
Если пользователь выбирает новый пользовательский квадрат цвета при первой загрузке ColorDialog, текущий цвет (светло-голубой) исчезает, а образцы цветов и значения RGB устанавливаются как белые.
Спасибо
2 ответа
Я нашел другой способ достичь своей цели...
Прежде чем загрузить ColorDialog, я перебираю CustomColors и вижу, является ли цвет, на который я щелкнул, одним из этих значений, если нет, я добавляю его в массив CustomColors.
Таким образом, цвет, на который я щелкаю в интерфейсе, может быть выбран в пользовательском интерфейсе цветов и может быть изменен пользователем при необходимости.
Обратитесь к этому SO-ответу, в нем есть все подробности о хранении и получении 16 значений из файла settings.settings SO-связанный ответ
Еще одна вещь, на которую следует обратить внимание, это то, что порядок 16 значений вверх и вниз не зависит друг от друга слева направо.
0 2 4 6 8 10 12 14
1 3 5 7 9 11 13 15