Bil*_*soe 13 c# enums combobox winforms
如何在组合框中显示枚举值?下面的代码导致组合框的所有显示名称都是"caseHandler.cState".我希望它具有枚举值的实际名称.
我的枚举定义如下:
public enum caseState
{
Active = 1,
Finished,
Problem
}
Run Code Online (Sandbox Code Playgroud)
我有一个定义为这样的类:
public class cState
{
public string _name;
public int _id;
public cState(int id,string name)
{
_name = name;
_id = id;
}
}
Run Code Online (Sandbox Code Playgroud)
填充我的组合框的代码:
ArrayList AL = new ArrayList();
foreach (string cs in Enum.GetNames(typeof(caseState)))
{
cState aEnum = new cState((int)Enum.Parse(typeof(caseState),cs),cs);
AL.Add(aEnum);
}
cbState.DisplayMember = "_name";
cbState.ValueMember = "_id";
cbState.DataSource = AL;
Run Code Online (Sandbox Code Playgroud)
Ste*_*cya 23
你试过用吗?
cbState.DataSource = Enum.GetNames(typeof(caseState));
Run Code Online (Sandbox Code Playgroud)
并且在检索数据时只需解析它
小智 10
恩欧姆
public enum Status { Active = 0, Canceled = 3 };
Run Code Online (Sandbox Code Playgroud)
设置下拉值
cbStatus.DataSource = Enum.GetValues(typeof(Status));
Run Code Online (Sandbox Code Playgroud)
从所选项目中获取枚举
Status status;
Enum.TryParse<Status>(cbStatus.SelectedValue.ToString(), out status);
Run Code Online (Sandbox Code Playgroud)
http://amir-shenodua.blogspot.com/2012/03/net-using-enum-to-populate-combo-box.html