如何在选择项目后删除组合框

时间:2019-02-09 21:10:39

标签: c# combobox

我想在用户选择索引为0的非默认项目(“请选择一个选项”)后立即销毁组合框。

代码如下:

private void btn_options_Click(object sender, EventArgs e)
    {
        Options_DropDown = new ComboBox();

        //Build a list
        var dataSource = new List<Options_Items>();            
        dataSource.Add(new Options_Items() { Commentmethod = "Please select an option." });
        dataSource.Add(new Options_Items() { Commentmethod = "Override selected file." });
        dataSource.Add(new Options_Items() { Commentmethod = "Create a copy of the selected file at selected location."});
        dataSource.Add(new Options_Items() { Commentmethod = "Copy the commented version to clipboard."});

        //Setup data binding
        Options_DropDown.DataSource = dataSource;
        Options_DropDown.DisplayMember = "Commentmethod";

        // make it readonly
        Options_DropDown.DropDownStyle = ComboBoxStyle.DropDownList;

        Options_DropDown.SetBounds(401, 290, 171, 23);

        if (Options_DropDown.SelectedIndex != 0) //this if is not working the way I want it to
        {
            Controls.Remove(Options_DropDown);
        }

        this.Controls.Add(Options_DropDown);
    }

然后是添加项目的类

public class Options_Items
    {
        public string Commentmethod { get; set; }
    }

其他信息:我单击使组合框出现的按钮,然后选择一个项目,组合框被删除。

1 个答案:

答案 0 :(得分:0)

我不确定您使用的是哪种显示技术,但是WinForms和WPF / UWP GUI类都具有将任何元素设置为“不可见”,“禁用”它们甚至直接从UI中删除它的选项。但是,在删除时,您必须非常小心地维护引用,否则可能会收集垃圾。禁用或不可见的声音要好一些。

但是,至少可以说,在选择(或根本不选择)之后删除UI元素的整个想法很奇怪。我只知道玩笑程序可以做到这一点。

如果用户以后要纠正其输入怎么办?通常,如果您不想再显示任何内容,可以将其放入另一种注册卡/页面/另一种方式中,以将UI分成单独的段。然后,用户可以选择不再看到它,还可以选择返回。