我想通过从下拉列表中选择颜色来更改面板的背景颜色

时间:2019-09-30 10:30:49

标签: c# asp.net

我正在编写代码,允许用户选择页面背景的颜色(下拉列表),问题是我从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”

1 个答案:

答案 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;
}