【发布时间】:2014-09-09 09:34:27
【问题描述】:
我正在开发基于 Windows 窗体模板的 Windows 应用程序。我正在使用 .NET 3.5 版本。在这个应用程序中,目标是可以从 App.Config 文件中管理不同表单的所有视觉设置(背景颜色、不同按钮的背景颜色等......)。
所以基本上,我有一个“FormBase”类,我所有的表单都继承了它,这个类包含这样的代码:
public class FormBase : Form
{
protected override void OnLoad(EventArgs e)
{
BackColor = Color.FromName(ConfigurationManager.AppSettings["backColor"]);
foreach (var item in this.Controls)
{
if (item is Button)
{
((Button)item).BackColor = Color.FromName(ConfigurationManager.AppSettings["buttonBackground"]);
((Button)item).ForeColor = Color.FromName(ConfigurationManager.AppSettings["buttonText"]);
}
if (item is ...)
{
//some other code
}
}
}
}
然后我有我的 App.Config 文件,其中包含如下代码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="buttonText" value="White"/>
<add key="buttonBackground" value="Red"/>
<add key="backColor" value="White"/>
<add key="textColor" value="Red"/>
</appSettings>
</configuration>
现在,在我所有表单的声明中,我都有一行
public partial class Form1 : FormBase
我的问题是,当我运行应用程序时,它运行良好,并且可以正常工作,App.Config 文件中的不同颜色是我的表单上显示的颜色。但是当我只在 Visual Studio 中查看设计器而不运行应用程序时,设计器无法显示表单的外观,并且出现以下错误
服务容器中已存在服务 System.Windows.Forms.Design.IEventHandlerService。参数名称:服务类型
我不知道如何解决这个问题。这不是一个大问题,因为该应用程序运行良好,但这让我很困扰,我想知道发生了什么
【问题讨论】:
标签: c# xml winforms inheritance app-config