Установите свойство designmode формы с помощью отражения - PullRequest
0 голосов
/ 11 февраля 2019

Я могу создать и показать форму, которая загружается из файла DLL через отражение.Я хочу обмануть плавающую форму, думая, что она в режиме дизайна.Я думаю, что должна быть возможность где-то найти вспомогательную переменную в форме и установить ее с помощью отражения, но я не могу найти ее и код для ее установки.Может кто-нибудь помочь мне найти способ заставить форму думать, что она находится в режиме разработки?

Я знаю, что свойство доступно только для чтения, но, возможно, имеется базовое поле.

1 Ответ

0 голосов
/ 12 февраля 2019

Из комментария 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();

Это работает, чтобы заставить форму поверить, что она находится в режиме разработки, а на самом деле это не так.Сайт, к счастью, является публичной собственностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...