C# 在C中将MS Access颜色代码转换为十六进制#

C# 在C中将MS Access颜色代码转换为十六进制#,c#,asp.net,.net,ms-access,C#,Asp.net,.net,Ms Access,是否有方法将MS Access颜色代码转换为C#中的十六进制 下面是我在stackoverflow上找到的一些参考表 您可以像这样转换为十六进制: string hexValue = "#" + 16777215.ToString("X"); 或者用一种方法将其包装起来: public static string AccessToHex(int colorCode) { return "#" + colorCode.ToString("X"); } 您需要将该值转换为

是否有方法将MS Access颜色代码转换为C#中的十六进制

下面是我在stackoverflow上找到的一些参考表


您可以像这样转换为十六进制:

 string hexValue = "#" + 16777215.ToString("X");
或者用一种方法将其包装起来:

 public static string AccessToHex(int colorCode) {
      return "#" + colorCode.ToString("X");
 }

您需要将该值转换为十六进制,然后将前两位与后两位翻转。例如,将蓝色的原始值16711680转换为十六进制值FF0000。但是,蓝色的值为0000FF;需要交换(所以是的,另一个答案是错误的…)

该值也被填充为始终具有所需的6位数字

string rawHex = msAccessColorCode.ToString("X").PadLeft(6, '0');
string hexColorCode = "#" + rawHex.Substring(4, 2) + rawHex.Substring(2, 2) + rawHex.Substring(0, 2);
要执行相反的操作(hex->Ms Acces),只需以相反的方式执行步骤即可。去掉多余的
#
字符,倒转前/后两个值,并将该数字从基数16转换为基数10

string input = "#0000FF";
string hexColorCode = input.TrimStart('#');
string rawHex = hexColorCode.Substring(4, 2) + hexColorCode.Substring(2, 2) + hexColorCode.Substring(0, 2);
string result = Convert.ToInt32(rawHex, 16).ToString(); //16711680

请注意,
Intew.Max
设置为
0x7FFFFFFF
(我们的颜色代码上限为
0xFFFFFF
),因此在这里使用
转换为int32
是完全安全的,而不是
Int64
,我不知道它这么简单,谢谢!我能够验证这一点@How we do do the reverse?感谢您的反馈,我编辑了答案,将其包括在内:)
string input = "#0000FF";
string hexColorCode = input.TrimStart('#');
string rawHex = hexColorCode.Substring(4, 2) + hexColorCode.Substring(2, 2) + hexColorCode.Substring(0, 2);
string result = Convert.ToInt32(rawHex, 16).ToString(); //16711680