[英]How to create a checkbox for each possible enum value in Windows forms?
假设我们有一个enum Identifier {Name, Id, Number}
并且我们希望为用户提供诸如对话框之类的消息,其中只包含每个可能的Identifier
值和“确定”按钮的复选框。 在对话框确认中,获取List<Identifier>
(如果未选中任何复选框,则为空)。 如何用winforms做这么简单的事情?
您可以使用以下方法在枚举中获取值数组:
var valuesArray = Enum.GetValues(typeof (Identifier));
要显示复选框:
foreach (var val in valuesArray)
{
//create checkbox
var cb = new CheckBox();
cb.Name = string.Format("cb_{0}", val);
cb.Text = val; //set your properties
//add to your form controls
this.Controls.Add(cb);
}
要获取列表,只需获取表单上的所有复选框:
var checkedIdentifiers = new List<Identifier>();
foreach (var val in valuesArray)
{
//find checkbox
var cb = this.Controls[string.Format("cb_{0}", val)];
if (cb != null && cb.Checked)
checkedIdentifiers.Add((Identifier)Enum.Parse(typeof(Identifier), val));
}
您可以对上述内容进行其他错误检查,但这就是要点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.