record LangOpt(
string
Name,
string
Text);
private
void
ReloadLangOpt()
{
List<LangOpt> opts =
new
List<LangOpt>()
{
new
LangOpt(
"lblA1"
,
"123"
),
new
LangOpt(
"lblA2"
,
"456"
),
};
FieldInfo[] allControls =
this
.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic);
foreach
(FieldInfo field
in
allControls)
{
var
controlType = field.FieldType;
var
controlObj = field.GetValue(
this
);
var
p_name = controlType.GetProperty(nameof(LangOpt.Name));
if
(p_name !=
null
)
{
string
controlName = (
string
)p_name.GetValue(controlObj);
LangOpt langOpt = opts.Find(f => f.Name == controlName);
if
(langOpt !=
null
)
{
var
p_text = controlType.GetProperty(nameof(LangOpt.Text));
p_text.SetValue(controlObj, langOpt.Text);
}
}
}
}
private
void
Form1_Load(
object
sender, EventArgs e)
{
ReloadLangOpt();
}