我正在尝试将从注册表项中读取的颜色设置转换为System.Drawing.Color。我正在将从注册表返回的对象转换为System.Drawing.Color,遵循以下文章:Convert OBJECT to System.Drawing.Color
System.Drawing.Color color = (System.Drawing.Color)result;
以下是我作为对象获取的这些注册表值的几个示例:
Type Data
REG_SZ Color [Olive]
REG_SZ Color [A=255, R=255, G=128, B=128]
将第一个注册表项强制转换为System.Drawing.Color可以正常工作,但是在转换第二个键时,我得到一个"指定的强制转换无效"错误。能够将这两个键转换为System.Drawing.Color?
的最佳方法是什么?编辑:我认为解决这个问题的最简单方法是在写入注册表时,我将Color转换为ARGB(int32),当我读取它时,我可以使用{{ 1}}(除非有其他解决方案,我完全不知道)。
答案 0 :(得分:1)
您从注册表中获得的内容可能是一个字符串,因此请使用此page建议的ColorConverter类
以下是示例代码:
Color regColor = (Color)ColorConverter.ConvertFromString((string)result);