为了账号安全,请及时绑定邮箱和手机立即绑定

使用复选框动态添加组合框

使用复选框动态添加组合框

C#
呼唤远方 2022-09-04 16:29:51
我正在尝试在单击复选框时添加组合框。我使用的代码如下。就目前而言,我可以让它在已经存在的组合框中移动,但它不会创建一个新的组合框。        private void checkBox1_CheckedChanged(object sender, EventArgs e)    {        // Determine the CheckState of the check box.          if (checkBox1.CheckState == CheckState.Checked)        {              combo.Items.AddRange(new object[] {                "Item 1",                "Item 2",                "Item 3",                "Item 4",                "item 5",                "Item 6"});            combo.Location = new System.Drawing.Point(19, 123);            combo.Name = "combo";            combo.Size = new System.Drawing.Size(121, 21);            combo.TabIndex = 0;            combo.SelectedIndexChanged += new System.EventHandler(this.combo_SelectedIndexChanged);            combo.BringToFront();            this.AllowDrop = false;        }    }    private void checkBox1_Click(object sender, System.EventArgs e)    {        switch (checkBox1.CheckState)        {            case CheckState.Checked:                ComboBox combo = new ComboBox();                Controls.Add(combo);                break;            case CheckState.Unchecked:                break;            case CheckState.Indeterminate:                break;        }    }
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

解决方法是注意要将语句放入哪个函数。组合框的设置(范围,位置等)将在条件下的函数中。这些将与 和 一起,以防万一它最终落后于某些东西。CheckChangedif checkedgroupbox.controls.add();combo.BringToFront();


private void checkBox1_CheckedChanged(object sender, EventArgs e)

    {

        // Determine the CheckState of the check box.  

        if (checkBox1.CheckState == CheckState.Checked)

        {

            groupBox1.Controls.Add(combo);

            combo.Items.AddRange(new object[] {

                "Item 1",

                "Item 2",

                "Item 3",

                "Item 4",

                "Item 5",

                "Item 6"});

            combo.Location = new System.Drawing.Point(19, 123);

            combo.Name = "combo";

            combo.Size = new System.Drawing.Size(121, 21);

            combo.TabIndex = 0;

            combo.SelectedIndexChanged += new System.EventHandler(this.combo_SelectedIndexChanged);

            combo.BringToFront();


            this.AllowDrop = false;

}

同时,在函数中,您必须实例化组合框并添加它。Click


    private void checkBox1_Click(object sender, System.EventArgs e)

    {

        switch (checkBox1.CheckState)

        {

            case CheckState.Checked:

                ComboBox combo = new ComboBox();

                Controls.Add(combo);

                break;

            case CheckState.Unchecked:


                break;

            case CheckState.Indeterminate:


                break;

        }

    }

如果您想在取消选中复选框后删除组合框,只需添加


        if (checkBox1.CheckState == CheckState.Unchecked)

        {

            groupBox1.Controls.Remove(combo);

            Controls.Remove(combo);

            combo.Items.Clear();

        }

进入函数。确保放置,否则它会将组合框的新实例的范围添加到旧实例中。private void checkBox1_CheckedChanged(object sender, EventArgs e)combo.items.Clear()


查看完整回答
反对 回复 2022-09-04
  • 1 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号