我有一个用C#开发的Windows应用程序有20个表单。如何将用户选择的字体保存在数据库中并在应用程序中重新加载,因为它应用于我的项目中的所有表单作为默认表单,标签,文本框等?
实际上,我想让用户自定义申请表。
答案 0 :(得分:0)
您无法直接将字体对象保存到数据库中。您可以创建一个将Font转换为String并返回的函数,以便可以将字符串值保存到数据库中。
在应用程序的外观设置对话框中,只要在保存时调用fontToString()函数,就可以获得所需的所有设置。然后(我假设您有一个要保存的数据库,否则您可以使用AppData或.NET的Properties.Settings.Default功能)将您从函数中获得的字符串保存到数据库中。
您还应该在公共静态类中实现一个函数或者一个名为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列表中。祝你好运!