C# Winforms通过接口将表单添加到组件

C# Winforms通过接口将表单添加到组件,c#,winforms,interface,devexpress,components,C#,Winforms,Interface,Devexpress,Components,我有DevExpress XtraForm,它实现了一个自写接口。然后是组件,它具有接口类型的属性。所以我想如果我把组件拉到表单上,我可以将表单设置为组件属性的值。但这不起作用。设计师没有在菜单中显示我的表单。如果我将组件的PropertyType更改为XtraForm,它将按预期工作 Winform实现ITest 组件从ITest类型获取属性 Winform添加组件 在Designer中,我可以看到组件的属性,但无法设置。下拉对话框为空 有人能帮我吗?设计师使用反射来发现事物。它只能为实际编译

我有DevExpress XtraForm,它实现了一个自写接口。然后是组件,它具有接口类型的属性。所以我想如果我把组件拉到表单上,我可以将表单设置为组件属性的值。但这不起作用。设计师没有在菜单中显示我的表单。如果我将组件的PropertyType更改为XtraForm,它将按预期工作

  • Winform实现ITest
  • 组件从ITest类型获取属性
  • Winform添加组件
  • 在Designer中,我可以看到组件的属性,但无法设置。下拉对话框为空

  • 有人能帮我吗?

    设计师使用反射来发现事物。它只能为实际编译的类找到这样的东西,以便反射可以工作。您的表单类尚未编译,无法让它发现它实现了ITest。正如您所发现的,它可以找到有关其基类的信息。用于让组件发现其自身承载的窗体。在表单构造函数中简单地分配属性是一行解决方案。@HansPassant感谢这一点很有帮助。我不会使用designer。在构造函数中这样做更有效。发布作为答案,我将接受;)