Как наследовать универсальную форму и открыть ее в конструкторе 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 "понимает", что открывать в конструкторе и как его открывать.