如何使用字符串值更改现有复选框的名称?

问题描述 投票:0回答:1

[我想做的是在不直接使用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中告诉我,我必须分别问这个问题。

c# winforms checkbox
1个回答
0
投票

您不需要为此使用一个临时复选框。您可以按照以下方式使用Linq通过名称搜索该复选框,并设置“检查状态”。

Controls.OfType<CheckBox>()
        .Where(x => x.Name == nameToSearch)
        .Single()
        .Checked = true;
© www.soinside.com 2019 - 2024. All rights reserved.