Разрешить пользователям настраивать интерфейс приложения (шрифт, цвет...)?

У меня есть приложение для Windows, разработанное на C# с 20 формами. Как я могу сохранить выбранный пользователем шрифт в базе данных и перезагрузить его в приложении, так как он применяется ко всем формам в моем проекте в качестве формы по умолчанию, метки, текстового поля и т. Д.?

На самом деле, я хочу позволить пользователям настраивать формы заявок.

1 ответ

Решение

Вы не можете сохранить шрифт Object непосредственно в базе данных. Вы можете создать функцию, которая будет конвертировать Font в String и обратно, чтобы строковое значение могло быть сохранено в базе данных.

В диалоговом окне настроек внешнего вида вашего приложения вы можете иметь все необходимые настройки, если вы вызываете функцию fontToString(), пока она сохраняется. Затем (я предполагаю, что у вас есть база данных для сохранения, в противном случае вы можете либо использовать AppData, либо функцию Properties.Settings.Default.NET) сохранить строку, полученную из вашей функции, в базу данных.

Вы также должны реализовать функцию в общедоступном статическом классе или что-то легко доступное, называемое updateFontInAllWindows(), где вы просматриваете настройки из базы данных и применяете их к каждой форме. Вот пример кода (Font usefont - это конечный результат запроса к базе данных).

Font usefont = DatabaseHandler.GetFont();
List<Form> formList = new List<Form>();
formList.Add(Form1);
formList.Add(Form2);
foreach (Form frm in formList) {
   foreach (Control ctl in frm.Controls) {
       ctl.Font = usefont;
   }
}

Этот код перебирает каждый элемент управления в каждой форме и применяет к нему шрифт. Вы можете расширить его, чтобы использовать другие настройки, такие как BackgroundColor. Обратите внимание, что вы должны добавить каждую форму, которая будет настроена в соответствии с настройками пользователя, в список formList. Удачи!

Другие вопросы по тегам