我创建了一个具有设计时支持的自定义用户控件,如下所示:
项目/装配“MyUserControl”
代码是这样的:
namespace MyUserControl
{
[Designer("MyUserControl.Design.MyUserControlDesigner, MyUserControl", typeof(IDesigner))]
public class MyUserControl : Control
{
// Some stuff here
}
}
namespace MyUserControl.Design
{
public class MyUserControlDesigner : ControlDesigner
{
// Some other stuff here
}
}
只要这两个类在同一个程序集中,一切正常。 VS2012显示了我所有的设计师选项。但是由于显而易见的原因(参考System.Design和其他)我不想在我的MyUserControl程序集中使用设计器代码,而是在MyUserControl.Design中。所以我在同一个解决方案中创建了第二个项目:
项目/装配“MyUserControl”
项目/大会“MyUserControl.Design”
代码是这样的:
namespace MyUserControl
{
[Designer("MyUserControl.Design.MyUserControlDesigner, MyUserControl.Design", typeof(IDesigner))]
public class MyUserControl : Control
{
// Some stuff here
}
}
使用它时,根本找不到设计师。 VS2012不会显示内联可选组件,而是显示没有附加设计器的组件。
我是否必须将我的设计器程序集添加到GAC才能让VS2012找到它或者这里有什么问题?
编辑:在向WindowsFormsApplication1添加对MyUserControl.Design的引用时,一切正常,但这正是您不想要的......
答案 0 :(得分:0)
您需要将MyUserControlDesigner
作为公共课程。
答案 1 :(得分:0)
我遇到了完全相同的问题。只有当我按照以下方式指定设计者类时,它才开始为我工作。
namespace MyUserControl
{
[Designer("MyUserControl.Design.MyUserControlDesigner, MyUserControl.Design, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8bc98ae14acadc09", typeof(IDesigner))]
public class MyUserControl : Control
{
// Some stuff here
}
}