[我想做的是在不直接使用cb1的情况下将其更改为true的情况,为此,我正在使用字符串将tempcb的名称更改为cb1,然后使tempcb的checked为true。
CheckBox cb1 = new CheckBox(); //this should not be changed using its own name and only should change using tempcb for what I'm doing to work
string str = chkBxSettPShwMp.Name.ToString();
CheckBox tempcb = new CheckBox();
tempcb.Name = str;
tempcb.Checked = true;
可悲的是,它返回false。我坚信这是因为tempcb是一个新的复选框,所以即使我更改它也与cb1不在同一个复选框。有没有办法做到这一点?想到会出现CheckBox tempcb = existing CheckBox(cb1);
之类的东西,但是我找不到类似的东西。
ps:这不是my previous one的乘积问题,他们在metastack中告诉我,我必须分别问这个问题。
您不需要为此使用一个临时复选框。您可以按照以下方式使用Linq通过名称搜索该复选框,并设置“检查状态”。
Controls.OfType<CheckBox>()
.Where(x => x.Name == nameToSearch)
.Single()
.Checked = true;