猿问

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

我正在编写允许用户选择页面背景颜色(下拉列表)的代码,问题是我从库 System.Drawing 中获取了已知颜色,但我不知道如何从列表中获取该值。我怎样才能做到呢?


protected void 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”


慕村225694
浏览 82回答 1
1回答

青春有我

您应该将输入解析回KnownColor. Color然后您可以使用以下命令从该值创建一个Color.FromKnownColor():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;}
随时随地看视频慕课网APP
我要回答