winforms 如何为动态生成的复选框设置文本?

hrirmatl  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(125)

我想在checkedlist中动态生成复选框。我从字符串列表中生成每个复选框的.Text,然后我将每个新的复选框添加到checkedlist中,当我运行应用程序时,它们在那里,但没有文本。

我尝试过使用控件来获取文本,但是每次我想要完整的字符串列表时只有一个复选框。因此,我返回到以下方法:
`

public void GetAttributs()
        {
            CheckBox checkBox = new CheckBox();

            List<string> lstAttributs = new List<string>();
            
            lstAttributs.Add("Alifère: capacité de voler à x mètres d'altitude");
            lstAttributs.Add("Amphibien: capacité de nager à x mètres de profondeur, peut respirer sous l'eau et sur la terre");
            lstAttributs.Add("Armure naturelle: peau épaisse, jusqu'à x% de dégâts physiques absorbés par l'ennemi");
            lstAttributs.Add("Avantage du terrain: sur x terrain(s), la créature n'a pas de malus");
            lstAttributs.Add("Célérité: attaque toujours en premier lors de tour d'initiative");
            lstAttributs.Add("Corps artificiels: créature artificielle, nul besoin pour elle de respirer");
            lstAttributs.Add("Dégagement: impossible d'être encerclé");
            lstAttributs.Add("Double frappe: capacité d'attaquer deux fois par tour de jeu");
            lstAttributs.Add("Fin limier: plafond supplémentaire de 5% dans une des compétences techniques");
            lstAttributs.Add("Frigifugé: capacité de survivre à basse température jusqu'à x degrés Celsius");
            lstAttributs.Add("Gros dormeur: temps de récupération divisé par deux lors de repos");
            lstAttributs.Add("Hyperesthésie: chance de ne pas être empoisonné égale à x%");
            lstAttributs.Add("Ignifugé: capacité de survivre à haute température jusqu'à x degrés Celsius");
            lstAttributs.Add("Insubmersible: impossible d'être submergé");
            lstAttributs.Add("Lourdaud: trop lourd pour attaquer en premier, attaque en dernier");
            lstAttributs.Add("Mithridatisation: chance de ne pas être empoisonné égale à x%");
            lstAttributs.Add("Mort-vivant: ne peut pas être soigné par des moyens conventionnels (sauf repos), est obligé de dévorer un corps ou boire des fluides corporels");
            lstAttributs.Add("Porteur de charges lourdes: capacité de porter 25% la charge maximum que l'on peut porter");
            lstAttributs.Add("Prodige: plafond supplémentaire de 5% dans une des compétences naturelles");
            lstAttributs.Add("Régénération spirituelle: à chaque début de tour, 10% de l'énergie est régénérée par le lanceur");
            lstAttributs.Add("Régénération vitale: à chaque début de tour, 10% de PV régénérés pour le lanceur");
            lstAttributs.Add("Soif de bataille: plafond supplémentaire de 5% dans une des compétences de combat");
            lstAttributs.Add("Souffle: la créature est capable de cracher du feu ou n'importe quel autre élément (dégâts non magiques)");
            lstAttributs.Add("Vague de panique: fais trop peur, les adversaires doivent réussir un jet de Volonté tous les x tour(s) pour agir, mais peuvent toujours esquiver en cas d'échec");
            lstAttributs.Add("Voie libre: capacité de déplacement doublée lorsque le terrain est dégagé.");

            for(int i = 0; i < lstAttributs.Count; i++)
            {
                checkBox.Text = lstAttributs[i];
                chckLstAttributs.Items.Add(checkBox);
            }
        }

`

9bfwbjaz

9bfwbjaz1#

您不必将CheckBox控件添加到CheckedListBox中。CheckedListBox基本上只是一个启动的ListBox。您向CheckedListBox中添加项,控件将显示这些项,就像ListBox一样。不同之处在于CheckedListBox在每个项旁边显示一个复选框。只需执行以下操作:

chckLstAttributs.Items.AddRange(lstAttributs);

相关问题