хранение и извлечение цветов с помощью базы данных, приложение C # Windows Forms - PullRequest
8 голосов
/ 16 февраля 2010

Я делаю приложение для Windows с C #. Я использую диалоговое окно цвета для пользователя, чтобы выбрать цвет. Я хотел бы сохранить этот цвет в базе данных, а затем получить его и использовать этот цвет в пользовательском интерфейсе.

Какой подход ты бы мне предложил?

Ответы [ 3 ]

10 голосов
/ 16 февраля 2010

Лучшим способом будет сохранить шестнадцатеричный цвет в поле базы данных nvarchar(7) ... в качестве примера будет введено значение #ffffff. varchar(6) будет работать так же хорошо и занимать меньше места в вашей БД. Обязательно добавьте # в ваш код.

Поскольку вам необходимо преобразовать его в / из контрольного цвета, вы можете использовать System.Drawing.ColorTranslator.FromHtml(someHexColor)

// Hex to Control Color
var myColor = "#[color from database]";
var myControlColor = System.Drawing.ColorTranslator.FromHtml(myColor);

// Control Color to Hex
var colorBlue = System.Drawing.Color.Blue;
var hexBlue = System.Drawing.ColorTranslator.ToHtml(colorBlue);
4 голосов
/ 16 февраля 2010

Я использую функции System.Drawing.Color.FromArgb () и System.Drawing.Color.ToArgb () для преобразования цвета из целого числа в целое и сохранения его как int в базе данных

0 голосов
/ 17 февраля 2010

я нашел способ получить шестнадцатеричный код выбранного цвета с помощью ColorDialog

ColorDialog col = new ColorDialog();

col.ShowDialog();

string color = col.Color.ToArgb().ToString("x");

color = color.Substring(2, 6);

color = "#" + color;

MessageBox.Show(color);

button1.BackColor = System.Drawing.ColorTranslator.FromHtml(color);
...