如何在Windows窗体中为每个可能的枚举值创建复选框
本文关键字:枚举 复选框 创建 Windows 窗体 | 更新日期: 2023-09-27 18:09:49
假设我们有一个enum Identifier {Name, Id, Number}
,我们想为用户提供一个类似对话框的消息,其中每个可能的Identifier
值和Ok按钮只有复选框。在对话框确认得到一个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));
}
您可以在上面的基础上添加错误检查,但这是它的要点。