я занимаюсь разработкой окна приложения и в том, что я создал класс для общего вида и настройки чувствительности
CommonAppearance класс Код:Как создать объект Run-time, используя Reflection в C#?
static void SetCommonAppearance(Label ctrl){ //some appearance setting code}
static void SetCommonAppearance(GridGroupingControl ctrl){ //some appearance setting code}
static void SetCommonAppearance(GradientPanel ctrl){ //some appearance setting code}
static void SetCommonAppearance(Form ctrl){ //some appearance setting code}
static void SetCommonAppearance(ComboBox ctrl){ //some appearance setting code}
static void SetCommonAppearance(CheckBox ctrl){ //some appearance setting code}
static void SetCommonAppearance(RadioButton ctrl){ //some appearance setting code}
static void SetCommonAppearance(Button ctrl){ //some appearance setting code}
public static void UseCommonTheme(Form form)
{
List<Control> lstControls = GetAllControls(form.Controls);
foreach (Control ctr in lstControls)
{
string temp2 = ctr.GetType().Name;
switch (temp2)
{
case "TextBox":
SetCommonAppearance((TextBox)ctr);
break;
case "AutoLabel":
SetCommonAppearance((Label)ctr);
break;
case "GridGroupingControl":
SetCommonAppearance((GridGroupingControl)ctr);
break;
case "ButtonAdv":
ApplyCustomTheme((ButtonAdv)ctr);
break;
case "CheckBoxAdv":
SetCommonAppearance((CheckBox)ctr);
break;
case "ComboBoxAdv":
SetCommonAppearance((ComboBox)ctr);
break;
case "RadioButtonAdv":
SetCommonAppearance((RadioButton)ctr);
break;
}
}
}
это приемлемо, если есть меньше приложений управления, чтобы установить общий внешний вид, но в моя заявка есть количество различных типов элементов управления.
В способе UseCommonTheme(Form form)
вместо использования корпуса переключателя. Можно ли использовать отражение для управления элементами управления? Somthing как
foreach (Control ctr in lstControls)
{
string controlType = ctr.GetType().Name;
SetCommonAppearance((class reference of 'controlType')ctr);
}
Спасибо заранее.
Я использую .net 3.5 – BhushanK
@Bhushan Я добавил реализацию, которая использует отражение – Alberto
@Algerto что «элемент» в 'setAppearanceMethod.Invoke (нуль, новое [] {item}); '? – BhushanK