我想在用户选择索引为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; }
}
其他信息:我单击使组合框出现的按钮,然后选择一个项目,组合框被删除。
答案 0 :(得分:0)
我不确定您使用的是哪种显示技术,但是WinForms和WPF / UWP GUI类都具有将任何元素设置为“不可见”,“禁用”它们甚至直接从UI中删除它的选项。但是,在删除时,您必须非常小心地维护引用,否则可能会收集垃圾。禁用或不可见的声音要好一些。
但是,至少可以说,在选择(或根本不选择)之后删除UI元素的整个想法很奇怪。我只知道玩笑程序可以做到这一点。
如果用户以后要纠正其输入怎么办?通常,如果您不想再显示任何内容,可以将其放入另一种注册卡/页面/另一种方式中,以将UI分成单独的段。然后,用户可以选择不再看到它,还可以选择返回。