Winforms禁用数据预览

问题描述 投票:0回答:1

我正在尝试为我的组合框生成一个列表。这是在加载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;

表单显示了这一点,用户控件应该在这里显示Error thrown by

c# winforms user-controls system.reflection
1个回答
1
投票

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

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

  • DesignMode财产
  • LicenseModeUsage财产

工作方式不同,例如DesignMode在构造函数中不起作用,但LicenseMode不起作用。因此,您需要确定哪种方法最适合您,具体取决于您需要使用它的位置。

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

© www.soinside.com 2019 - 2024. All rights reserved.