This is a really, really, really, really
common question on this forum. Three times a week common. The main problem is that most people get stuck on "$language lets me do it this way" and assume that either .NET must support it that way or not at all.
Well, in truth, .NET doesn't support using a string literal to refer to a variable. Well, in truth, it doesn't support it in a way that you want to use; the reflection code would be large and slow.
The best way to work around this is to use a control array
. Decide how many combo boxes you need, then pass that information to your form. It can make an array of the appropriate size, instantiate and configure the combo boxes, then lay them out in a desirable pattern.
Keep in mind that you're not limited to just using arrays; you could use a List or other data structure to better support on-the-fly changes in the number of combo boxes.