我可以创建并显示通过反射从dll文件加载的表单。 我想欺骗浮动表单以使其处于设计模式。我认为应该可以在某处的表单中找到一个支持变量,并通过反射进行设置,但是我找不到它以及设置它的代码。有人可以帮助我找到一种方法使表格认为它处于设计模式吗?
我知道该属性是只读的,但也许有一个基础字段。
答案 0 :(得分:0)
从thehennyy的评论中,我做了一个假班来充当网站:
public class MySite : IServiceProvider, ISite
{
public IComponent Component => null;
public IContainer Container => null;
public bool DesignMode => true;
public string Name { get => ""; set => value = ""; }
public object GetService(Type serviceType)
{
return null;
}
}
然后在启动表单之前,我将Site属性设置为此类的实例:
form.Site = new MySite();
这确实使表格相信它实际上处于设计模式,而实际上并非如此。该站点幸运地是公共财产。