В дополнение к технике Вима вы также можете объявить неуниверсальный базовый элемент управления с тем же именем, что и у вашего универсального класса, и получить ваш универсальный элемент управления / форму из этого неуниверсального базового класса.
Таким образом, вы можете обмануть и проектировщика, и компилятор в использовании файла ресурсов из вашего универсального класса, и вы получите постоянную поддержку конструктора после настройки базового класса без необходимости перебирать файл .designer при каждой перестройке:
// Empty stub class, must be in a different file (added as a new class, not UserControl
// or Form template)
public class MyControl : UserControl
{
}
// Generic class
public class MyControl<T> : MyControl
{
// ...
}
Единственным требованием является наличие точно одного и того же имени для вашего универсального класса и его базового класса, и что базовый класс должен находиться в другом файле класса, в противном случае дизайнер жалуется на отсутствие одного из два класса.
PS. Я проверил это с формами, но оно должно работать так же с элементами управления.