Public Function CloneControl(control As System.Windows.Forms.Control) As System.Windows.Forms.Control Dim clone As System.Windows.Forms.Control = DirectCast(Activator.CreateInstance(control.[GetType]()), System.Windows.Forms.Control) For Each [property] As PropertyDescriptor In TypeDescriptor.GetProperties(control) If [property].PropertyType.IsSerializable Then [property].SetValue(clone, [property].GetValue(control)) End If Next Return clone End FunctionThen:
ComboBox cb1 = new ComboBox();
ComboBox cb2 = (ComboBox) CloneControl(cb1);
(Not tested)