代码之家  ›  专栏  ›  技术社区  ›  Foitn

Winforms禁用数据预览

  •  0
  • Foitn  · 技术社区  · 7 年前

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

    我该怎么做?

    错误截图:

    Screenshot of the error

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

    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;
    

    表单显示了这一点,这里应该显示usercontrol Error thrown by

    1 回复  |  直到 7 年前
        1
  •  1
  •   jason.kaisersmith    7 年前

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

    有一些事情可以帮助你做到这一点,你需要选择哪一个最适合你;

    • 这个 DesignMode 所有物
    • LicenseModeUsage 所有物

    工作方式不同,例如,DesignMode在Contractors中不起作用,但LicenseMode起作用。因此,您需要根据需要在何处使用它来确定什么最适合您。

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