将颜色转为argb字符串,存入数据库
读出来之后,字符串重新转颜色
而不要存颜色名称因为颜色名称有限,自定义颜色可能没有名称,得到的是argb的字符串
你按名称转换成颜色,转不回来了

解决方案 »

  1.   

    public static Color GetColor(string ColorStr)//字符串转颜色
            {
                int ARGBvalue = 0;
                Color newColor = Color.FromName(ColorStr);
                if ((newColor.A + newColor.R + newColor.G + newColor.B) == 0)
                {
                    int.TryParse(ColorStr, System.Globalization.NumberStyles.HexNumber, null, out ARGBvalue);
                    newColor = Color.FromArgb(ARGBvalue);
                }
                return newColor;
            }
    颜色转字符串用color.name就可以了
    转回颜色的时候判断一下是否能够正常转成颜色,不正常说明里面是argb字符串,调用argb的代码再赋值一次即可
      

  2.   

    把十六进制颜色转化为color对象
    ColorTranslator.FromHtml("#FF0000")
    或 ColorTranslator.FromHtml("Red");把color对象转化为十六进制颜色
    ColorTranslator.ToHtml(Color.FromArgb(255,255,255))
    或 ColorTranslator.ToHtml(Color.Red);
      

  3.   


    我明白你的意思了,现在问题出在我换个颜色的时候,grid的单元格验证会报“必须实现对象IConvertible接口”,我该用哪个事件来把转换的方法写进去,最后更新到绑定的tatetable