C# 我想通过从下拉列表中选择颜色来更改面板的背景色
我正在编写代码,允许用户选择页面背景的颜色(下拉列表),问题是我从库系统中获取了已知的颜色。绘图,我不知道如何从列表中获取该值。我怎么能做到 受保护的无效页面加载(对象发送方、事件参数e) {C# 我想通过从下拉列表中选择颜色来更改面板的背景色,c#,asp.net,C#,Asp.net,我正在编写代码,允许用户选择页面背景的颜色(下拉列表),问题是我从库系统中获取了已知的颜色。绘图,我不知道如何从列表中获取该值。我怎么能做到 受保护的无效页面加载(对象发送方、事件参数e) { if (!IsPostBack) { string[] colorArray = Enum.GetNames(typeof(KnownColor)); drpBack.DataSource = colorArray;
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;}
当我单击按钮更新时,它会给我错误:提供的类型必须是枚举
我尝试编写而不是颜色-KnownColor它给了我一个信息:无法将类型“KnownColor”隐式转换为“Color”您应该将输入解析回
KnownColor
。然后您可以使用以下方法从此值创建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;
}