Not sure if this'll compile, but I've done something similar to this: string controlname = "control1"; string propertyname = "BackColor"; object newvalue = Color.Black; Control control; control = form1.GetType().InvokeMember( controlname, BindingFlags.Instance|BindingFlags.GetField, null, form1, new object[] {} ); control.GetType().InvokeMember( propertyname, BindingFlags.Instance|BindingFlags.SetProperty, null, control, new object[] { newvalue } ); -- Joel Lucsy