You should be able to create a generic form:
public partial class MyGenericForm<T> : Form where T : class { /* form code */ public List<T> TypedList { get; set; } }
Is valid C#, and compiles. However the designer won’t work and the form will throw a runtime exception if you have any images stating that it cannot find the resource.
I think this is because the windows forms designer assumes that the resources will be stored under the simple type’s name.
Yes you can! Here’s a blog post I made a while ago with the trick:
Designing Generic Forms
Edit: Looks like you’re already doing it this way. This method works fine so I wouldn’t consider it too hacky.