0

我有一个用 C# 开发的 Windows 应用程序,有 20 个表单。如何将用户选择的字体保存在数据库中并将其重新加载到应用程序中,因为它适用于我项目中的所有表单作为默认表单、标签、文本框等?

实际上,我想让用户自定义应用程序表单。

4

1 回答 1

0

您不能将字体对象直接保存到数据库中。您可以创建一个将 Font 转换为 String 并返回的函数,以便将字符串值保存到数据库中。

在应用程序的外观设置对话框中,您可以进行所需的所有设置,只要在保存时调用 fontToString() 函数即可。然后(我假设您有一个要保存到的数据库,否则您可以使用 AppData 或 .NET 的 Properties.Settings.Default 功能)将从您的函数中获得的字符串保存到数据库中。

您还应该在公共静态类或易于访问的名为 updateFontInAllWindows() 的东西中实现一个函数,您可以在其中从数据库中查找设置并将它们应用于每个表单。这是一些示例代码(字体使用字体是数据库查询的最终结果)。

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 列表中。祝你好运!

于 2013-08-24T10:46:34.703 回答