Формы - это элементы управления (просто посмотрите на цепочку наследования), а сама форма не имеет большого количества накладных расходов сама по себе. Он создает собственное окно, но это все.
Что должно принять ваше решение, так это то, как вы используете и отображаете элементы интерфейса в своем решении. Формы благоприятны для многих архитектур UI, и это то, с чем большинство разработчиков знакомо. Дизайнер поддерживает их хорошо, а создание, показ, скрытие и закрытие форм - это хорошо документированная, часто используемая парадигма, которая работает отлично. Да, у вас есть нагрузка при каждом создании формы, поскольку она создает все содержащиеся в ней элементы управления, но вы будете платить, даже если это UserControl. В любом случае необходимо создать дочерние элементы управления.
Можно утверждать, что Формы требуют, чтобы вы каждый раз их воссоздавали, но это не так. Если вы используете ShowDialog или Hide вместо Close, вы можете повторно использовать свои формы и заплатить цену один раз. Преимущество в том, что форма хранит ваши элементы управления в коллекции и управляет всем этим для вас, поэтому вам не о чем беспокоиться с GC и помните, какие у вас корни.
Парадигма UserControl более сложная - вам нужно управлять элементами управления загрузкой и разгрузкой, чтобы поддерживать низкое давление в памяти.Сложность также увеличивает стоимость затрат на поддержание, стоимость поддержки и, вероятно, затраты на разработку. Однако в некоторых сценариях есть некоторые очевидные преимущества для UserControls. Если вы используете шаблон MVC/MVP и некоторую форму фреймворка, который обрабатывает ваши представления, USerControl делает действительно хороший вид, когда форма становится рабочей областью (SCSF for the desktop - классический пример этого, а также OpenNETCF.IoC framework для CF).
Так что это «лучше»? Это зависит от того, как и где вы используете элементы, как ваша команда уже занимается разработкой, и как вы создали решение, в которое вы подключаетесь. Короче говоря, это не один правильный ответ.
Не уверен, почему это могло бы быть. Форма формируется из Control и, следовательно, является самим элементом управления. Это просто контейнерный контроль. На самом деле у него очень мало накладных расходов, если только дети, которых он содержит, не выполняют много работы при строительстве (и это не по вине Формы). – ctacke
@ctacke Я не выше того, что мы делаем что-то очень не так, но я попытался сравнить с использованием Forms vs. Controls только с несколькими простыми текстовыми полями; аналогичные результаты. На наших устройствах, в частности, это проблема с очисткой формы previoius, а затем отображение новой полной формы. Я догадался, что улучшенная скорость связана с тем, что устройству требуется только рисовать гораздо меньший прямоугольник, и ему не нужно избавляться от предыдущего. Чисто догадывается. –