Winforms 禁用数据预览

Winforms disable data preview

我正在尝试为我的组合框生成一个列表。 这是在加载用户控件时完成的。但是因为我是根据 类 实现某个接口生成这个列表,所以表单预览崩溃了。所以这个用户控件在表单内部,表单试图 "load" 用户控件,找不到数据并抛出错误。我想禁用数据预览,只显示空的 usercontrol

我该怎么做?

错误截图:

一段导致表单崩溃的代码:

var type = typeof(IConnector);
var types = AppDomain.CurrentDomain.GetAssemblies()
    .SelectMany(s => s.GetTypes())
    .Where(p => type.IsAssignableFrom(p) && !p.IsInterface).ToList();
foreach (Type typeString in types)
{
    object obj = Activator.CreateInstance(typeString);
    connectors.Add((IConnector)obj);
}
connectionChooserComboBox.DataSource = connectors;

窗体显示这个,用户控件应该显示在这里

所以听起来你需要区分设计模式和运行时模式。

有一些方法可以帮助您解决这个问题,您需要选择最适合您的方法;

  • DesignMode 属性
  • LicenseModeUsage 属性

工作方式不同,例如 DesignMode 不适用于构造器,但 LicenseMode 可以。因此,您需要根据需要使用它的位置来确定最适合您的方法。

这个 post 比我解释得更好; http://dotnetfacts.blogspot.de/2009/01/identifying-run-time-and-design-mode.html