Как наследовать универсальную форму и открыть ее в конструкторе Visual Studio?

в моем приложении, у меня есть BaseForm, который имеет общий член в нем:

public partial class BaseForm<T> : Form where T : Presenter
{
    protected T Presenter;

    public BaseForm()
    {
        InitializeComponent();
    }
}

теперь мне нужно иметь форму, которая наследуется от моей базовой формы

public partial class SampleForm : BaseForm<SamplePresenter>
{
    public SampleForm()
    {
        InitializeComponent();
        Presenter = new SamplePresenter();
    }
}

проблема в том, что конструктор Visual Studio не показывает my SampleForm полученные от BaseForm<T>.

Он дает это предупреждение:

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

SampleForm - - - счет-фактура базового класса.BaseForm " не удалось загрузить. Убедитесь, что ссылка на сборку и что все проекты были построены. 0 0

как я могу преодолеть это?

P. S. Я посмотрел на этот пост но на самом деле не понял, как это решить.

1 ответов


дизайнер не поддерживает это, как описано в том посте.

вам нужен этот базовый класс:

public partial class SampleFormIntermediate : BaseForm<SamplePresenter>
{
    public SampleFormIntermediate()
    {
        InitializeComponent();
        Presenter = new SamplePresenter();
    }
}

и вам нужно использовать этот класс для конструктора Visual Studio:

public partial class SampleForm : SampleFormIntermediate
{
}

таким образом, Visual Studio "понимает", что открывать в конструкторе и как его открывать.