我正在编写代码,允许用户选择页面背景的颜色(下拉列表),问题是我从System.Drawing库中获得了已知的颜色,而我不知道如何从中获取该值清单。我该怎么办?
受保护的无效Page_Load(对象发送者,EventArgs e) {
if (!IsPostBack)
{
string[] colorArray = Enum.GetNames(typeof(KnownColor));
drpBack.DataSource = colorArray;
drpBack.DataBind();}
//页面加载中我使用的颜色名称;
//这是按钮更新
protected void btnUpdate_Click(object sender, EventArgs e){
string back = drpBack.Text;
Color style = (Color)Enum.Parse(typeof(Color), back);
pnlCard.BackColor = style;}
当我单击按钮更新时,它给我错误:提供的类型必须为枚举。
我尝试写而不是Color-KnownColor,它给了我消息:无法将类型“ KnownColor”隐式转换为“ Color”
答案 0 :(得分:0)
您应该将输入解析回KnownColor
。然后,您可以使用Color.FromKnownColor()
从此值创建一个Color
:
protected void btnUpdate_Click(object sender, EventArgs e){
string back = drpBack.Text;
var parsedColor = (KnownColor)Enum.Parse(typeof(KnownColor), back);
var style = Color.FromKnownColor(parsedColor);
pnlCard.BackColor = style;
}