【发布时间】:2013-08-24 10:23:48
【问题描述】:
我有一个用 C# 开发的带有 20 个表单的 Windows 应用程序。如何将用户选择的字体保存在数据库中并在应用程序中重新加载它,因为它适用于我项目中的所有表单作为默认表单、标签、文本框等?
其实我是想让用户自定义申请表格。
【问题讨论】:
标签: c# sql visual-studio-2010 user-customization
我有一个用 C# 开发的带有 20 个表单的 Windows 应用程序。如何将用户选择的字体保存在数据库中并在应用程序中重新加载它,因为它适用于我项目中的所有表单作为默认表单、标签、文本框等?
其实我是想让用户自定义申请表格。
【问题讨论】:
标签: c# sql visual-studio-2010 user-customization
您不能将字体对象直接保存到数据库中。您可以创建一个函数将 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 列表中。祝你好运!
【讨论】: