gpt4 book ai didi

c# - 如何将自定义 IDesigner 移动到同一解决方案中的单独程序集?

转载 作者:太空宇宙 更新时间:2023-11-03 16:26:58 24 4
gpt4 key购买 nike

我创建了一个具有设计时支持的自定义用户控件,如下所示:

项目/程序集“MyUserControl”

  • MyUserControl.cs
  • MyUserControlDesigner.cs

代码是这样的:

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.cs

项目/程序集“MyUserControl.Design”

  • MyUserControlDesigner.cs

代码是这样的:

namespace MyUserControl
{
[Designer("MyUserControl.Design.MyUserControlDesigner, MyUserControl.Design", typeof(IDesigner))]
public class MyUserControl : Control
{
// Some stuff here
}
}

用这个的时候,根本找不到设计器。 VS2012 不显示内联可选组件,而是像一个没有附加设计器的组件。

我是否必须将设计器程序集添加到 GAC 才能让 VS2012 找到它,或者这里有什么问题?

编辑:将对 MyUserControl.Design 的引用添加到 WindowsFormsApplication1 时一切正常,但这正是您不想要的...

最佳答案

您需要将 MyUserControlDesigner 设为公共(public)类。

关于c# - 如何将自定义 IDesigner 移动到同一解决方案中的单独程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12260199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com