【问题标题】:I want to change the background color of panel by choosing the colors from dropdown list我想通过从下拉列表中选择颜色来更改面板的背景颜色
【发布时间】:2020-01-29 15:20:27
【问题描述】:

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

protected void Page_Load(object sender, 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”

【问题讨论】:

标签: c# asp.net


【解决方案1】:

您应该将输入解析回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;
}

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 2014-07-15
    • 2019-03-19
    • 2018-03-04
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    相关资源
    最近更新 更多