我正在开发一个基于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中的设计器而不运行该应用程序时,设计器无法显示表单的外观,因此我得到以下错误
服务System.Windows.Forms.Design.IEventHandlerService已经存在于服务容器中。参数名称: serviceType
我不知道怎么解决这个问题。这不是什么大问题,因为这个应用程序运行正常,但这让我很困扰,我想知道发生了什么
发布于 2014-12-21 17:55:55
我自己也遇到了这个问题。根据另一个网页,此错误可以通过关闭visual studio和删除obj文件夹来修复,然后重新打开visual studio并重新构建项目。
这是我读过的那一页。http://www.csharp411.com/ieventhandlerservice-already-exists-in-the-service-container/
他们说也要删除bin文件夹,但我发现我不必这么做。希望这能有所帮助!
https://stackoverflow.com/questions/24821737
复制相似问题