首页 新闻 会员 周边

请问如何将我给的一个系统的颜色名转换成Color.颜色名

0
悬赏园豆:5 [已关闭问题] 关闭于 2009-09-10 16:18

   private Color getColorStyle(String s)
        {
            return (Color)Enum.Parse(typeof(KnownColor),s,true);
        }

我传入了一个transparent,它报错说转换无效,请问这个怎么写?请各位帮个忙,我急用谢谢了

问题补充: public partial class Form1 : Form { public Form1() { InitializeComponent(); Array allcol = System.Enum.GetValues(typeof(KnownColor)); foreach (object hs in allcol) { string st = hs.ToString(); this.comboBox1.Items.AddRange(new object[] {}); } } private Color getColorStyle(String s) { return (Color)Enum.Parse(typeof(KnownColor),s,true); } void comboBox1_DrawItem(object sender, DrawItemEventArgs e) { ComboBox myCombox = (ComboBox)sender; Rectangle r = e.Bounds; if (e.Index==-1) { return; } if (sender==null) { return; } r.Offset(2, 2); r.Width = 50; r.Offset(1, 1); string displayText = this.comboBox1.Items[e.Index].ToString(); Color hs = this.getColorStyle(displayText); using (SolidBrush myBrush=new SolidBrush(hs)) { e.Graphics.FillRectangle(myBrush, r); e.Graphics.DrawString(hs.Name, this.Font, new Brushes(this.ForeColor), e.Bounds.X + 26, e.Bounds.Y + 1); } } } }
洋-洋的主页 洋-洋 | 初学一级 | 园豆:160
提问于:2009-09-06 12:11
< >
分享
所有回答(3)
0

搞个哈希就行,一边颜色名,一边是hex

司徒正美 | 园豆:270 (菜鸟二级) | 2009-09-06 13:17
那样太麻烦了!
支持(0) 反对(0) 洋-洋 | 园豆:160 (初学一级) | 2009-09-10 16:14
0

Color不是枚举!所以你的方式肯定是错的。

System.Drawing.Color 是个struct 类型的,每一个颜色相当与一个轻量类。

楼上的方式可能适合你的用法。但是也不会反回Color.

邢少 | 园豆:10926 (专家六级) | 2009-09-07 09:03
Array allcol = System.Enum.GetValues(typeof(KnownColor)); foreach (object hs in allcol) { string st = hs.ToString(); this.comboBox1.Items.AddRange(new object[] { st }); } 可以看出系统的颜色是枚举型
支持(0) 反对(0) 洋-洋 | 园豆:160 (初学一级) | 2009-09-10 16:15
0

你看看合适不  

 private Color getColorStyle(String s)

        {

            return Color.FromKnownColor( (KnownColor)Enum.Parse(typeof(KnownColor), s));

        }

ricman | 园豆:205 (菜鸟二级) | 2009-09-07 16:46
先取得颜色的名称: string ColorName = this.comboBox1.Items[e.Index].ToString(); 然后可以利用Color.FromName(ColorName)得到类似Color.颜色名
支持(0) 反对(0) 洋-洋 | 园豆:160 (初学一级) | 2009-09-10 16:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册