Я думал, что они более или менее отсортировали настольные проблемы разработчика в 2005. Вы судили обычных преступников?
Я, казалось, думал, что, пока Вы сделали все вышеупомянутые, это работало..... главным образом.
Я видел некоторые проблемы в VS2005 с этим. Они происходили главным образом из-за проблем с конструкцией объектов форм в разработчике. Были проблемы с кодом, который пытался получить доступ к базе данных от конструкторов формы и т.д.
Можно отладить проблемы как это путем запуска второго экземпляра Visual Studio и загрузки первой инстанции в отладчике. При установке точек останова в коде, можно затем отладить то, что происходит в разработчиках прежде всего.
Другой проблемой, которую я могу помнить, были дженерики в классах формы
public class MyForm<MyObject> : Form
это не будет работать
Я учусь к (по общему признанию soon-to-be-obsoleted) MCAD, и часть элемента WinForms была Визуальным Inheritence.
У меня лично не было основных проблем с ним, однако, существуют соображения для принятия для учета.
Для меня основная проблема всегда имеет инициализацию.. Необходимо помнить, что разработчик может / не, инстанцируют форм таким же образом, это делает во время выполнения (точно так же, это не может сделать этого с сетью dev, который является, почему уход необходим с рендерингом пользовательского элемента управления).
Кроме того, после того как форма изменяется, полное восстанавливает проекта, требуется для распространения изменений в форме к дочерним формам, которые наследовались ему.
Я лично не видел доказательства, чтобы предположить, что этого "избежали". AFAIK, его все еще хорошая практика для осуществления повторного использования кода, если это возможно. Визуальное наследование обеспечивает это.
Я могу предложить создать новый вопрос с фактическими проблемами, которые Вы имеете с примером кода? Мы можем затем посмотреть на него, чтобы видеть, можем ли мы получить его работа и объяснить почему :)
Я часто натыкаюсь на такие проблемы в Visual Studio. Во многих случаях конструктору форм MSVS не удается представить форму правильно. Назад в дни я работал с WinForms, который я должен был сделать весь вид странных приемов для включения некоторых сложных сценариев. Однако я думаю, что использование визуального наследования очень выгодно и не должно быть выброшено независимо от ошибок разработчика MSVS.
Я думаю, что нашел путь, как избежать этой проблемы.
Не сцепляйте Событие Form_Load в своей родительской форме, это повредит разработчика.
Также не убирайте пустого конструктора По умолчанию из Visual Studio в Родительской Форме. Если Вы хотите иметь Внедрение зависимости, создайте другого конструктора.
Как это:
public ProductDetail()
{
InitializeComponent();
}
public ProductDetail(ISupplierController supplierController) : base()
{
InitializeComponent();
this.supplierController = supplierController;
}
Можно затем все еще сделать это от наследованной Формы:
public NewProduct(ISupplierController supplierController)
: base(supplierController)
{
InitializeComponent();
}
Это работало на меня до сих пор, и у меня были некоторые странные проблемы разработчика также.
аплодисменты, Daniel
Прочитайте это: http://cs.rthand.com/blogs/blog_with_righthand/archive/2005/11/10/186.aspx
afaik, есть все еще проблемы с визуальным наследством и объектами, которые полагаются На сборниках для элементов дизайна, как правило, контролирует сетку и т. Д. Я верю, что MS все еще удалил возможность изменения f.Ex. GRIDVIEW в наследственной форме / USERCONTROL и т. Д. Но другие элементы управления, такие как TextBox, Form, Usercontrol, панель и т. Д., должны работать, как ожидалось, должны работать.
Я до сих пор не было проблем с VI, используя 3-й партийную сетку, контролирует сам, но вы должны быть осторожны, в частности, следует избегать удаления предметов из коллекций.