//第一步:使用PropertyInfo将类中的属性实例化获取
private static PropertyInfo[] propertyInfos = typeof(StationFlagBit).GetProperties();//获取属性
//第二步:获取控件名chk
private void GetFlagVar()
{
foreach (var chk in panel6.Controls)
{
if (chk is CheckBox)
{
var contemp = chk as CheckBox;
string GetName = contemp.Name.TrimStart("ckb".ToArray());
//第三步:将控件名与属性名比较,若相同,则将对应属性状态赋值给控件CheckBox;
foreach (var propertyInfo in propertyInfos)
{
if (propertyInfo.Name.Equals(GetName))
{
contemp.Checked = (Boolean)propertyInfo.GetValue(null);
}
}
}
}
}
//同理,将与控件同名的属性状态变成与控件状态一致
private void OutFlagVar()
{
foreach (var chk in panel6.Controls)
{
if (chk is CheckBox)
{
var contemp = chk as CheckBox;
string GetName = contemp.Name.TrimStart("ckb".ToArray());
foreach (var propertyInfo in propertyInfos)
{
if (propertyInfo.Name.Equals(GetName))
{
propertyInfo.SetValue(null, contemp.Checked);
bool ss = (bool)propertyInfo.GetValue(null);
if (ss)
{
}
}
}
}
}
}